前端使用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 相关文章推荐
破解Session cookie的方法
Jul 28 Javascript
jquery中this的使用说明
Sep 06 Javascript
JS面向对象编程浅析
Aug 28 Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
js函数的引用, 关于内存的开销
Sep 17 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
Nov 25 Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
Sep 26 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
简单了解vue.js数组的常用操作
Jun 17 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替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
解析strtr函数的效率问题
2013/06/26 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
js表数据排序 sort table data
2009/02/18 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
基本DOM节点操作
2017/01/17 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
python开发之for循环操作实例详解
2015/11/12 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
python 获取url中的参数列表实例
2018/12/18 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
python字符串格式化方式解析
2019/10/19 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
监察建议书范文
2014/03/12 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
个人作风建设总结
2014/10/23 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS