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

  • 微博营销推广12个技巧(微博营销推广活动有哪些)

    微博营销推广12个技巧(微博营销推广活动有哪些)

  • 闪退讯飞学习机(闪退)(讯飞闪退是怎么回事)

    闪退讯飞学习机(闪退)(讯飞闪退是怎么回事)

  • ipad2021有充电器吗(2021款ipad有充电器吗)

    ipad2021有充电器吗(2021款ipad有充电器吗)

  • vivox70可以无线充电吗(x70 vivo手机可以无线充电吗)

    vivox70可以无线充电吗(x70 vivo手机可以无线充电吗)

  • 拼多多口令复制后怎么助力(拼多多口令复制后打不开)

    拼多多口令复制后怎么助力(拼多多口令复制后打不开)

  • 滴滴公户和私户的区别(滴滴公户私户接单有区别吗)

    滴滴公户和私户的区别(滴滴公户私户接单有区别吗)

  • 苹果网页下载安装不了(苹果下载网页app怎么安装)

    苹果网页下载安装不了(苹果下载网页app怎么安装)

  • psp充不进去电(psp充不进电怎么回事)

    psp充不进去电(psp充不进电怎么回事)

  • 头条发视频怎么赚收益(头条发视频怎么发)

    头条发视频怎么赚收益(头条发视频怎么发)

  • 华为手机充一晚上电对手机有影响吗(华为手机充一晚上电打不开怎么办)

    华为手机充一晚上电对手机有影响吗(华为手机充一晚上电打不开怎么办)

  • 三星note10+需要贴膜吗(三星note10需要贴膜吗)

    三星note10+需要贴膜吗(三星note10需要贴膜吗)

  • 环绕屏有什么用(环绕屏手机图片)

    环绕屏有什么用(环绕屏手机图片)

  • 微博草稿箱在哪儿(微博草稿箱在哪里)

    微博草稿箱在哪儿(微博草稿箱在哪里)

  • 手机qq音乐头像怎么换(手机qq音乐头像怎么和qq同步)

    手机qq音乐头像怎么换(手机qq音乐头像怎么和qq同步)

  • 苹果xr可以更新ios13吗(苹果XR可以更新系统吗)

    苹果xr可以更新ios13吗(苹果XR可以更新系统吗)

  • 一寸照换底色(一寸照换底色怎么操作)

    一寸照换底色(一寸照换底色怎么操作)

  • oppoa5相机专业模式在哪里(oppoa59s相机专业模式怎么用)

    oppoa5相机专业模式在哪里(oppoa59s相机专业模式怎么用)

  • oppoFindx怎么设置指纹(oppofindx怎么设置4g网络)

    oppoFindx怎么设置指纹(oppofindx怎么设置4g网络)

  • 华为p30录音在哪里(华为p30录音在哪里关闭)

    华为p30录音在哪里(华为p30录音在哪里关闭)

  • 微信怎么删除他人评论(微信怎么删除他人渝康码)

    微信怎么删除他人评论(微信怎么删除他人渝康码)

  • win10显示后解压文件损坏怎么办(window10解压)

    win10显示后解压文件损坏怎么办(window10解压)

  • lsserv.exe是什么进程  有什么作用 lsserv进程查询(synaudsrv.exe是什么)

    lsserv.exe是什么进程 有什么作用 lsserv进程查询(synaudsrv.exe是什么)

  • 【详讲】微信小程序分包流程步骤(微信怎么开小)

    【详讲】微信小程序分包流程步骤(微信怎么开小)

  • vue项目打断点的三种方式(vue怎么打断点)

    vue项目打断点的三种方式(vue怎么打断点)

  • 注会与税务师有什么区别
  • 预付加油充值卡可以报销吗
  • 合伙事务执行的办法有哪些?
  • 分配税后利润需交个人所得税吗
  • 印花税缴款怎么用银行卡支付
  • 稿费的个人所得税税率是多少
  • 负数发票要给购票人吗
  • 劳动保险费属于营业外支出吗
  • 大型机械进退场费属于机械台班单价组成部分
  • 预收账款开票怎么做账
  • 开的是全额发票但是有分包如何做账务处理?
  • 定额发票已经取得怎么办
  • 减税的案例
  • 刚升级一般纳税人可以申请贷款吗
  • 前期差错更正中所得税的会计处理
  • 最优五种个人捐赠方式税务比较?
  • 因为买房子
  • 内部退养个税计算方式
  • 付敏科技有限公司官网
  • 包装物押金如何确定销售额?
  • 调整期初数怎么做会计分录
  • 股东利润分配预缴税款
  • 代销商品和代销商品款
  • 未成立工会组织情况说明
  • 支付网银年费计入什么科目
  • 鸿蒙系统超级终端手机连手机
  • 航天信息服务费是什么费用
  • php二维码生成代码
  • dpi鼠标按键是什么意思
  • mac重装macos
  • opware12.exe - opware12进程是什么文件 有什么用
  • PHP aes (ecb)解密后乱码问题
  • 土地增值税清算管理规程
  • 汉密尔顿岛在哪里
  • 公司收到投资款怎么写收据?
  • php中常量名命名规范
  • phpemail正则
  • php连接mysql数据库步骤正确的是
  • javascript手机编程
  • 职工教育经费是不是教育费附加
  • x-s和web_session
  • flip函数
  • php 输出
  • 事业单位接受捐赠物资会计处理
  • 公交卡充值发票报销单怎么填
  • SQL Server FileStream详解
  • 增值税专用发票是干什么用的
  • 个人所得税计算器公式
  • 个税返还手续费政策
  • 小规模企业没有账,税务会查账吗
  • 公司代缴社保生育津贴大概领多少
  • 长期待摊费用如何评估
  • 小规模纳税人防伪税控会计分录
  • 客户购买商品的三要素
  • 税盘的服务费
  • 一般纳税人只有销项没有进项
  • 购买办公楼分期合同
  • 网络竞价须知
  • 出口退税企业如何更正申报增值税
  • 预计负债计入哪里
  • sql server 复制表中行数据
  • sql server怎么复制表
  • win7电脑默认打开方式怎么设置
  • w10 office激活
  • Yosemite使用技巧 如何使用Yosemite mac信息功能共享电脑屏幕教程
  • linux计划任务不生效
  • win10如何禁用windows defender
  • windows右键菜单
  • window8任务管理器
  • win10隐藏图标不显示
  • win7系统引导坏了怎么修复
  • python的nltk
  • 防止shell命令注入
  • javascriptwhile
  • Python中断言语句
  • 二级联动什么意思
  • js无限极分类
  • 江苏税务电子税务局电话号码
  • 财务顾问属于什么业务
  • 宁波无犯罪证明能当场拿到吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设