前端使用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 相关文章推荐
jQuery 阴影插件代码分享
Jan 09 Javascript
50款非常棒的 jQuery 插件分享
Mar 29 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
javascript实现简易计算器的代码
May 31 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
Javascript实现鼠标点击冒泡特效
Dec 24 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
python Flask实现restful api service
2017/12/04 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
投标承诺书怎么写
2014/05/24 职场文书
PHP中->和=>的意思
2021/03/31 PHP
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
MySQL数据库表约束讲解
2022/06/21 MySQL