前端使用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代码
Nov 09 Javascript
网页javascript精华代码集
Jan 24 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
Dec 25 Javascript
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
JS实现联想、自动补齐国家或地区名称的功能
Jul 07 Javascript
Ant Design的Table组件去除
Oct 24 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 问卷调查结果统计
2015/10/08 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
pycharm配置git(图文教程)
2019/08/16 Python
python二元表达式用法
2019/12/04 Python
python实现门限回归方式
2020/02/29 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
促销活动总结
2014/04/28 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
环境保护标语
2014/06/20 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2014年教师节寄语
2014/08/11 职场文书
暑期社会实践证明书
2014/11/17 职场文书
银行稽核岗位职责
2015/04/13 职场文书
微信早安问候语
2015/11/10 职场文书
Python基本数据类型之字符串str
2021/07/21 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS