前端使用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 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
QQ邮箱的一个文本编辑器代码
Mar 14 Javascript
JavaScript 字符串处理函数使用小结
Dec 02 Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 Javascript
关于动态执行代码(js的Eval)实例详解
Aug 15 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
VUE路由动态加载实例代码讲解
Aug 26 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
Dec 17 Javascript
js实现select下拉框选择
Jan 11 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实现递归无限级分类
2015/10/22 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Django自定义用户认证示例详解
2018/03/14 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python随机模块random使用方法详解
2020/02/14 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
几道数据库的概念性面试题
2014/05/30 面试题
CAD制图设计师自荐信
2014/01/29 职场文书
迎新晚会主持词
2014/03/24 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
四风之害观后感
2015/06/09 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android