前端使用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 使用手册(五)
Sep 23 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
原生js实现验证码功能
Mar 16 Javascript
JS实现搜索关键词的智能提示功能
Jul 07 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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 源代码压缩小工具
2009/12/22 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
使用Apache的rewrite
2021/03/09 Servers
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Django框架 querySet功能解析
2019/09/04 Python
python实现滑雪游戏
2020/02/22 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
软件设计的目标是什么
2016/12/04 面试题
大一自我鉴定范文
2013/12/27 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL