前端使用crypto.js进行加密的函数代码


Posted in Javascript onAugust 16, 2020

crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。

可以在这个GitHub的https://github.com/brix/crypto-js上下载该js,它可以单独引入所需要加密方式的js;也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式,我使用的就是后者一次引入所有的加密文件,这个文件也不是很大,还可以接受。

因为我的需求是加密可逆,具有一定的安全性(对安全性要求不高),所以使用DES或AES即可,我用的是AES:

function getAesString(data,key,iv){//加密
  var key = CryptoJS.enc.Utf8.parse(key);
  var iv  = CryptoJS.enc.Utf8.parse(iv);
  var encrypted =CryptoJS.AES.encrypt(data,key,
    {
      iv:iv,
      mode:CryptoJS.mode.CBC,
      padding:CryptoJS.pad.Pkcs7
    });
  return encrypted.toString();  //返回的是base64格式的密文
}
function getDAesString(encrypted,key,iv){//解密
  var key = CryptoJS.enc.Utf8.parse(key);
  var iv  = CryptoJS.enc.Utf8.parse(iv);
  var decrypted =CryptoJS.AES.decrypt(encrypted,key,
    {
      iv:iv,
      mode:CryptoJS.mode.CBC,
      padding:CryptoJS.pad.Pkcs7
    });
  return decrypted.toString(CryptoJS.enc.Utf8);   
}

function getAES(data){ //加密
  var key = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; //密钥
  var iv  = '1234567812345678';
  var encrypted =getAesString(data,key,iv); //密文
  var encrypted1 =CryptoJS.enc.Utf8.parse(encrypted);
  return encrypted;
}

function getDAes(data){//解密
  var key = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; //密钥
  var iv  = '1234567812345678';
  var decryptedStr =getDAesString(data,key,iv);
  return decryptedStr;
}

key和iv我们都可以更换,但是需要保证的是加解密的key和iv保持一致

到此这篇关于前端使用crypto.js进行加密的函数代码的文章就介绍到这了,更多相关crypto.js加密内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
nullJavascript中创建对象的五种方法实例
May 07 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
简单谈谈json跨域
Mar 13 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
基于JavaScript实现滑动门效果
Mar 16 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
20道JS原理题助你面试一臂之力(必看)
Jul 22 Javascript
js中apply和call的理解与使用方法
Nov 27 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 #Javascript
Vue使用axios引起的后台session不同操作
Aug 14 #Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 #Javascript
vue项目在线上服务器访问失败原因分析
Aug 14 #Javascript
vue设置全局访问接口API地址操作
Aug 14 #Javascript
浅谈vue项目,访问路径#号的问题
Aug 14 #Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 #Javascript
You might like
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
一个PHP分页类的代码
2011/05/18 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
怎么快速自学python
2020/06/22 Python
求职简历中个人的自我评价
2013/12/25 职场文书
分公司负责人任命书
2014/06/04 职场文书
个人合伙协议书范本
2014/10/14 职场文书
教师师德表现自我评价
2015/03/05 职场文书
婚育证明格式
2015/06/17 职场文书
七年级作文之游记
2019/12/11 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python