前端使用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 01 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
Oct 11 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
值得分享的轻量级Bootstrap Table表格插件
May 30 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
js实现控制文件拖拽并获取拖拽内容功能
Feb 17 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
JavaScript实现简单动态表格
Dec 02 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Django更新models数据库结构步骤
2020/04/01 Python
Python如何实现线程间通信
2020/07/30 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
物业管理应届生求职信
2013/10/28 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
九年级数学教学反思
2014/02/02 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
解析Java中的static关键字
2021/06/14 Java/Android
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技