前端使用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类库的顶层对象名用户体验分析
Oct 24 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
利用jquery获取select下拉框的值
Nov 23 Javascript
vue2.0父子组件间通信的实现方法
Apr 19 Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
vue 中固定导航栏的实例代码
Nov 01 Javascript
javascript Canvas动态粒子连线
Jan 01 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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+SqlServer实现分页显示
2006/10/09 PHP
PHP 和 XML: 使用expat函数(三)
2006/10/09 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
python比较两个列表大小的方法
2015/07/11 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
幼儿园儿童节主持词
2014/03/21 职场文书
综合测评个人总结
2015/03/03 职场文书
校长师德表现自我评价
2015/03/04 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
golang为什么要统一错误处理
2022/04/03 Golang
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL