前端使用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 相关文章推荐
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 Javascript
js动态加载以及确定加载完成的代码
Jul 31 Javascript
JS自动缩小超出大小的图片
Oct 12 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
Feb 01 Javascript
Angular2内置指令NgFor和NgIf详解
Aug 03 Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 Javascript
微信小程序checkbox组件使用详解
Jan 31 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
ES6实现图片切换特效代码
Jan 14 Javascript
如何用JavaScipt测网速
May 09 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
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
js选项卡的实现方法
2015/02/09 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
python重试装饰器的简单实现方法
2019/01/31 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
Python类中self参数用法详解
2020/02/13 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
实习护理工作自我评价
2013/09/25 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
电气自动化求职信
2014/06/24 职场文书
ktv好的活动方案
2014/08/15 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
留学推荐信中文范文
2015/03/26 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书