前端使用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取模(求余数)隔行变色
May 15 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
SyntaxHighlighter 3.0.83使用笔记
Jan 26 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
Boostrap入门准备之border box
May 09 Javascript
JavaScript数组的栈方法与队列方法详解
May 26 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 Javascript
js实现指定时间倒计时效果
Aug 26 Javascript
npm 语义版本控制详解
Sep 10 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
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 常见郁闷问题答解
2006/11/25 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
php语法检查的方法总结
2019/01/21 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
JS中的BOM应用
2018/02/02 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
Python selenium文件上传方法汇总
2020/11/19 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
python下载的库包存放路径
2020/07/27 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
如何设置Java的运行环境
2013/04/05 面试题
出纳岗位职责模板
2013/11/27 职场文书
教师党性分析材料
2014/02/04 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
学生评语集锦
2015/01/04 职场文书
《称赞》教学反思
2016/02/17 职场文书
公司与个人合作协议书
2016/03/19 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers