位置: 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如何实现外网访问路由器)

  • 三星手机怎么录屏(三星手机怎么录入门禁卡)

    三星手机怎么录屏(三星手机怎么录入门禁卡)

  • 抖音怎么艾特别人(抖音怎么艾特别人在主页)

    抖音怎么艾特别人(抖音怎么艾特别人在主页)

  • 怎么增加qq预设上限(qq怎么预设时间发送消息)

    怎么增加qq预设上限(qq怎么预设时间发送消息)

  • 联想3c服务是售后吗(什么是联想3c服务中心)

    联想3c服务是售后吗(什么是联想3c服务中心)

  • 声卡直播别人听不到声音(声卡直播别人听不见声音是怎么回事)

    声卡直播别人听不到声音(声卡直播别人听不见声音是怎么回事)

  • Excel表格怎么加一根线(excel表格怎么加一列)

    Excel表格怎么加一根线(excel表格怎么加一列)

  • 苹果se2屏幕材质(苹果se2屏幕材质是什么)

    苹果se2屏幕材质(苹果se2屏幕材质是什么)

  • 华为p30收不到短信(华为p30收不到短信验证码,回复出厂设置可以吗)

    华为p30收不到短信(华为p30收不到短信验证码,回复出厂设置可以吗)

  • 华为mate30耳机孔在哪(华为mate30耳机孔型号)

    华为mate30耳机孔在哪(华为mate30耳机孔型号)

  • 微信没反应怎么回事(微信没反应怎么办)

    微信没反应怎么回事(微信没反应怎么办)

  • ipad闹钟不关会响多久(ipad闹钟不关会响一天么)

    ipad闹钟不关会响多久(ipad闹钟不关会响一天么)

  • 苹果耳机找不到了怎么办(苹果耳机找不到怎么发出声音)

    苹果耳机找不到了怎么办(苹果耳机找不到怎么发出声音)

  • 华为的英文标志是什么(华为的英文标志图片)

    华为的英文标志是什么(华为的英文标志图片)

  • vivo手机怎么开启sos(vivo手机怎么开小窗口模式)

    vivo手机怎么开启sos(vivo手机怎么开小窗口模式)

  • 手机怎么看ip和端口(这么看手机ip)

    手机怎么看ip和端口(这么看手机ip)

  • 手机爱奇艺如何去广告(手机爱奇艺如何投屏到电视机上)

    手机爱奇艺如何去广告(手机爱奇艺如何投屏到电视机上)

  • iphone11多重多少克(苹果11多重多大)

    iphone11多重多少克(苹果11多重多大)

  • 苹果watch有几代(苹果watch几代了)

    苹果watch有几代(苹果watch几代了)

  • pr目标比特率多少合适(pr里面的目标比特率太低有没有什么影响)

    pr目标比特率多少合适(pr里面的目标比特率太低有没有什么影响)

  • 左右镜像怎么拍(左右镜像照片怎么弄)

    左右镜像怎么拍(左右镜像照片怎么弄)

  • 微信接收信息延迟怎么回事(微信接收信息延时)

    微信接收信息延迟怎么回事(微信接收信息延时)

  • 华为快速充电和超级快充(华为快速充电和闪充)

    华为快速充电和超级快充(华为快速充电和闪充)

  • 苹果xr怎么设置分屏(苹果xr怎么设置双卡双待)

    苹果xr怎么设置分屏(苹果xr怎么设置双卡双待)

  • qq人不在的自动回复(qq不在时自动回复句子)

    qq人不在的自动回复(qq不在时自动回复句子)

  • 苹果xr没有录屏吗(iphonexr没有录屏功能是什么原因)

    苹果xr没有录屏吗(iphonexr没有录屏功能是什么原因)

  • 余利宝怎么关闭(银行卡资金自动转入余利宝怎么关闭)

    余利宝怎么关闭(银行卡资金自动转入余利宝怎么关闭)

  • 怎样确认个人所得税专项扣除操作流程
  • 企业自产的产品转为自用
  • 残保金为啥经过个人账户
  • 企业信用公示的时效是多久
  • 一般纳税人收到普票可以抵扣吗
  • 苗木属于农产品中哪一类
  • 资产负债表其他应付款计算公式
  • 小企业会计准则会计科目表
  • 公司注册的费用记什么科目
  • 购买的职业险计入哪个科目
  • 商业保险税前扣除限额
  • 广告喷绘增值税怎么算
  • 对外支付类型
  • 税务实名认证怎么认证
  • 充值单据怎么开发票
  • 小型微利企业能开多少发票
  • 私立幼儿园收的特色课费可以追回吗
  • 制造行业库存该怎么处理
  • 简易计税增值税计入什么科目
  • Win11如何设置快捷键调音量
  • win7怎么输入命令
  • 事业单位财政拨款是编制吗
  • 常见的电脑系统类型
  • 初级证书多长时间可以领取?
  • php oci
  • php自学
  • 天津市残保金缴纳标准
  • 确定注册资本的方法
  • 房贷贷款利息计算
  • 劳务派遣增值税差额征税
  • ccmexec.exe是什么程序
  • uniapp多端兼容
  • PHP:imagecreatefromxpm()的用法_GD库图像处理函数
  • 企业负担的社保怎么做分录
  • 发票系统技术维护费
  • 投资公司收到境外债务
  • php反序列化漏洞原理
  • 年终奖分次发跟一起发有什么区别
  • 智能驾驶adas概念股龙头
  • 基于VGGNet乳腺超声图像数据集分析
  • 公司迁移到外省 税务局需要注销吗
  • md5 linux
  • 预收货款尚未发货
  • for循环语法结构是什么
  • phpcms安装
  • sql随机数字
  • 将原生html改成vue
  • 短期借款的账务处理例题
  • 普票是啥意思
  • 房地产开发的土地分割
  • 五险一金没有金
  • 软件开发的账务处理
  • 挂靠单位无理要求提供增值税发票怎么办?
  • 检测费用的会计分录
  • 公司的房租发票怎么记账
  • 公司库存商品科目余额太大怎么办
  • mysql三层架构
  • 数据库mysql索引
  • debian系列
  • 2014年电脑装win7与win10
  • win7桌面提示7601
  • linuxsu命令作用
  • win7开始菜单在哪个文件夹
  • ubuntu集成开发环境
  • .sfx.exe是什么文件
  • linux如何使用uname命令
  • unix2dos linux实现
  • win10系统打开文件夹就不停的闪
  • eclipse 单词
  • javascript中的函数该如何理解
  • 以下关于js说法错误的是
  • 安卓编程视频教程
  • python struct库
  • python抢红包
  • android下的单元测试要配置以下说法不正确的是
  • python程序开发
  • 已抵扣过的进项怎么做账
  • 安康国税局电话号码
  • 会计专业有必要读博士吗
  • 利润表研发费用项目应根据管理费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设