前端使用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 相关文章推荐
JS Timing
Apr 21 Javascript
JS解析XML的实现代码
Nov 12 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 Javascript
javascript中怎么做对象的类型判断
Nov 11 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
Sep 10 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
Jan 16 Javascript
js实现网页版贪吃蛇游戏
Feb 22 Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 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服务器实现多session并发运行
2006/10/09 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
php简单获取目录列表的方法
2015/03/24 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
基于python编写的微博应用
2014/10/17 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python简明入门教程
2015/08/04 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
化工工艺专业求职信
2013/09/22 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
班委竞选稿范文
2015/11/21 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记