位置: IT常识 - 正文

js常用的加密/解密方法(js加密解密源代码)

编辑:rootadmin
js常用的加密/解密方法 1.前言(老司机直接跳过) 为什么js需要加密

推荐整理分享js常用的加密/解密方法(js加密解密源代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js加密后如何解密,js加密解密源代码,js 加密 解密,js 加密 解密,js 加密 解密,js加密后是如何运行的,js 加密 解密,js加解密方法,内容如对您有帮助,希望把文章链接给更多的朋友!

谈到加密,大多数人应用场景都在于后端接口的加密签名校验。这种一般都用于服务端与服务端之间的相互调用,避免第三方使用你的接口做违法违规的事情,这种加密校验比较安全,因为没有暴露在外的代码。

但是前端运行的JavaScript代码不一样,它是运行在浏览器的一种轻量级即时编译型的脚本语言。它是直接运行在用户电脑上的代码,除了在sojson.v6加密过的js代码,普通的js代码对于使用者来说是公开透明的,对于想要非法获取你的数据的人也是公开透明的,那么对于那些想要通过分析你的js代码来盗取你服务器数据的人来说,就是一件十分简单没难度的事情。

2.常用的js加密有哪些

JavaScript的原生函数escape()和unescape()

var code = 'console.log("hello")';var en = escape(code); // console.log%28%22hello%22%29var de = unescape(en); // console.log("hello")document.write(en, '     ', de)

用escape函数加密后,字符变成了%开头形式的特殊编码。

我们也可以用unescape把加密后的js解密回来

md5

https://github.com/blueimp/JavaScript-MD5

var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"

MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

md5加密一般用于确保文件和代码的唯一性,可以根据计算代码的md5值来判断代码是否被改变。

des/aes

https://github.com/brix/crypto-js

js常用的加密/解密方法(js加密解密源代码)

DES是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用

1. 在utils/common.js中 写入公用的方法eg:// 公用方法 import CryptoJS from "../common/crypto-js/crypto-js.js" // 加密// 在main.js中引入export default { // 加密 encryptByDES(message, key) { const keyHex = CryptoJS.enc.Utf8.parse(key); const encrypted = CryptoJS.DES.encrypt(message, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7, }); return encrypted.toString(); }}2. 在main.js中引入import commonFun from './utils/common.js'//在 vue 的原型链 (prototype) 中注册Vue.prototype.$commonFun = commonFun3. 页面中使用this.$commonFun.encryptByDES(参数1, 参数2);//参数1:需要加密的数据//参数2:加密key

rsa

https://github.com/rzcoder/node-rsa

RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

const NodeRSA = require('node-rsa');const key = new NodeRSA({b: 512});const text = 'Hello RSA!';const encrypted = key.encrypt(text, 'base64');console.log('encrypted: ', encrypted);const decrypted = key.decrypt(encrypted, 'utf8');console.log('decrypted: ', decrypted);

base64

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法

浏览器的window对象默认就有base64的加解密函数

const code = '(function(){ alert(\'hello\') }())'const en = window.btoa(code); // 加密const de = window.atob(en); // 解密

sha1

https://github.com/emn178/js-sha1

SHA1是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

sha1('Message to hash');var hash = sha1.create();hash.update('Message to hash');hash.hex();

sha256

https://github.com/emn178/js-sha256

SHA256是一种散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA算法之一。和SHA1属于不同算法标准

sha256('Message to hash');sha224('Message to hash');var hash = sha256.create();hash.update('Message to hash');hash.hex();var hash2 = sha256.update('Message to hash');hash2.update('Message2 to hash');hash2.array();// HMACsha256.hmac('key', 'Message to hash');sha224.hmac('key', 'Message to hash');var hash = sha256.hmac.create('key');hash.update('Message to hash');hash.hex();var hash2 = sha256.hmac.update('key', 'Message to hash');hash2.update('Message2 to hash');hash2.array();

如果觉得上边这些加密方式还不够安全,无法达到你的预期,可以使用sojson.v6加密,加密强度在国内排名第一,作者每年都会更新加密算法,不停增加加密强度,既保证了js的运行速度又保证了js的安全性。

本文链接地址:https://www.jiuchutong.com/zhishi/297380.html 转载请保留说明!

上一篇:几个Linux杀死所有进程的方法(linux杀死程序)

下一篇:无需公网IP,远程连接SQL Server数据库【内网穿透】(没有公网ip如何实现外网访问路由器)

  • 做好 O2O 业务用户体验的三个要素(o2o工作)

    做好 O2O 业务用户体验的三个要素(o2o工作)

  • asp木马不具有的功能(木马后缀中,下列哪个是不能执行木马脚本的)

    asp木马不具有的功能(木马后缀中,下列哪个是不能执行木马脚本的)

  • iphone从安卓设备转移数据在哪里(iphone手机的“从安卓设备转移数据”)

    iphone从安卓设备转移数据在哪里(iphone手机的“从安卓设备转移数据”)

  • b站可以通过手机号找人吗(b站可以通过手机号改邮箱吗)

    b站可以通过手机号找人吗(b站可以通过手机号改邮箱吗)

  • 光纤连接otdr监测的方式有(otn光纤)

    光纤连接otdr监测的方式有(otn光纤)

  • 软件一直在安装中也不能删怎么办(软件一直在安装中怎么删除)

    软件一直在安装中也不能删怎么办(软件一直在安装中怎么删除)

  • 美团怎么上线自己的商店(美团外卖怎么上店自取)

    美团怎么上线自己的商店(美团外卖怎么上店自取)

  • 微信先拉黑再删除和直接删除的区别(微信先拉黑再删除对方怎么显示)

    微信先拉黑再删除和直接删除的区别(微信先拉黑再删除对方怎么显示)

  • 路由器亮灯正常但wifi没了(路由器亮灯正常状态图片)

    路由器亮灯正常但wifi没了(路由器亮灯正常状态图片)

  • vivox21双引擎闪充失效(vivox21双引擎闪充设置不见了)

    vivox21双引擎闪充失效(vivox21双引擎闪充设置不见了)

  • 苹果怎样才给换官换机(iphone如何换)

    苹果怎样才给换官换机(iphone如何换)

  • 华为还原设置在哪里(华为手机还原设置在哪里)

    华为还原设置在哪里(华为手机还原设置在哪里)

  • 手机分屏为什么不能同时进行(手机分屏为什么有的软件没有)

    手机分屏为什么不能同时进行(手机分屏为什么有的软件没有)

  • 微信橱窗怎么开通(微信商品橱窗开通需要什么条件)

    微信橱窗怎么开通(微信商品橱窗开通需要什么条件)

  • ipad第六代是air几(ipad第六代是air1吗)

    ipad第六代是air几(ipad第六代是air1吗)

  • 华为手机一会震动一下(华为手机过一会就震动)

    华为手机一会震动一下(华为手机过一会就震动)

  • a1586是什么版本(a1586是什么版本的苹果手机)

    a1586是什么版本(a1586是什么版本的苹果手机)

  • 电脑为什么反应那么慢(电脑为什么反应慢半拍)

    电脑为什么反应那么慢(电脑为什么反应慢半拍)

  • 华为m6可以插存储卡吗(华为m6可以扩展存储吗)

    华为m6可以插存储卡吗(华为m6可以扩展存储吗)

  • 手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

    手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

  • 手机wps怎么新建文档(手机wps怎么新建ppt)

    手机wps怎么新建文档(手机wps怎么新建ppt)

  • ppt字体位置怎么设置(ppt文字位置怎么调整)

    ppt字体位置怎么设置(ppt文字位置怎么调整)

  • 小红书如何联系卖家(小红书如何联系薯队长)

    小红书如何联系卖家(小红书如何联系薯队长)

  • 如何做好系统备份 重装系统需要备份哪些文件(如何做好系统备案工作)

    如何做好系统备份 重装系统需要备份哪些文件(如何做好系统备案工作)

  • 【综述】分子预训练模型综述

    【综述】分子预训练模型综述

  • 不含税价格计算方法
  • 没有签订劳动合同可以直接离职吗
  • 异地提供建筑服务
  • 烟叶税税率是多少2019
  • 融资利息进项税如何抵扣
  • 企业被环保关停政府赔偿
  • 清算时实收资本怎么计算
  • 一般纳税企业可以变更小微企业吗
  • 会计凭证归档后几年后可销毁
  • 生产成本直接材料包括哪些
  • 管家婆进销存软件免费版
  • 个体工商户的生产、经营所得
  • 开票信息没有电话号码可以吗
  • 软件企业的税收优惠政策
  • 进口商品买卖的关键环节
  • 发票的校验码被公章覆盖了怎么办
  • 外经证金额没开完需要核销吗
  • 企业与企业之间进行的电子商务模式是
  • 税收分类编码怎么添加
  • php中的变量都以什么开头
  • 事业单位专项经费包括哪些
  • 如何进入企业年报系统
  • 建筑业主营业务收入二级科目有哪些
  • linux入门学习
  • 代理金融业务
  • 发票交付在哪里
  • 怎么用云服务
  • 非居民纳税人可以做汇算清缴吗
  • 技术出口发票开什么信息
  • 日本蜡烛图形
  • ping命令详解步骤
  • 现金股利什么时候到账
  • 限售股 缴税
  • dedecms使用教程
  • mysql安装总结
  • 出口货物不缴纳增值税
  • 以前年度损益调整属于哪类科目
  • 一般纳税人作废小规模时开的发票怎么报税
  • 税收类型增值税有哪些
  • 已经认证尚未抵扣的发票
  • 缴纳的工会经费现金流量表怎么记
  • 自来水厂被收购,员工怎么办
  • 应交税费年末需要结转吗
  • 增值税明细账怎么结账
  • 扣除工程款说明
  • 不抵扣的进项发票需要在电子税务局操作么
  • 公司视同销售产品确认收入分录?
  • 成本不够如何计算出来
  • 年底员工借款如何处理
  • 辞退福利是入工资还是福利费
  • bat windows
  • 繁体软件在简体运行
  • 深度Win7 64位系统默认输入法图标如何个性化设置
  • win10创意者更新易升
  • xp系统和2003系统的异同
  • ubuntu 16.04
  • centos7修改网络
  • windows设置tomcat自动重启
  • win10如何恢复已删除的密钥
  • win8系统映像
  • XP系统升级WIN7系统
  • win7的系统设置
  • win10累积更新卡在正在下载
  • linux免安装软件
  • android内存优化面试
  • cocos creator 资源加密
  • 在win7上加装一个硬盘不显示
  • window.location.reload白屏
  • 常用批处理命令大全
  • 用css制作网页的步骤
  • javascript中的继承
  • python中random模块用法
  • javascript ES6 新增了let命令使用介绍
  • unity手柄圆盘
  • 银行和税务局的关系
  • 进口车区别
  • 税务局2017年40号令
  • 河南地税app
  • 铜川财务
  • 美国对中国商品征收关税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设