在线文档

  • https://github.com/brix/crypto-js/blob/master/docs/QuickStartGuide.wiki#AES

安装

npm install crypto-js
#安装之后看到node_modules目录直接放到public目录下

使用

#主要引入以下这个文件
crypto-js/crypto-js.js

示例

#js端
function secret(string, code, operation) {code = CryptoJS.MD5('contentDocuments').toString();code2 = CryptoJS.MD5('contentWindowHig').toString();var iv = CryptoJS.enc.Utf8.parse(code.substring(0, 16));var key = CryptoJS.enc.Utf8.parse(code2.substring(0,16));if (operation) {return CryptoJS.AES.decrypt(string, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);}return CryptoJS.AES.encrypt(string, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7}).toString();}
# php端
public static function secret($string,$code,$operation=false){$code = md5('contentDocuments');$code2 = md5('contentWindowHig');$iv = substr($code,0,16);$key = substr($code2,0,16);if($operation){return openssl_decrypt(base64_decode($string),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);}return base64_encode(openssl_encrypt($string,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));}

自己封装

class AesSecurity
{/*** method 为AES-128-CBC时* @var string传入要加密的明文* 传入一个16字节的key* 传入一个16字节的初始偏移向量IV*/private static $method = 'AES-128-CBC';private static $key = 'contentWindowHig';private static $options = OPENSSL_RAW_DATA;private static $iv = 'contentDocuments';public static function getKey(){return self::$key;}public function __construct(){self::$key = md5(self::$key,true);}public static function setMethod($method){self::$method = $method;}public static function setKey($key){self::$key = $key;}/*** @param $options 可取值 OPENSSL_ZERO_PADDING OPENSSL_RAW_DATA*/public static function setOptions($options){self::$options = $options;}public static function _encrypt($input){$key = substr(md5(self::$key),0,16);$iv = substr(md5(self::$iv),0,16);$data = base64_encode(openssl_encrypt($input,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));return $data;}/*** @param $input* @return bool|string* todo rtrim*/public static function _decrypt($input){$key = substr(md5(self::$key),0,16);$iv = substr(md5(self::$iv),0,16);$data = openssl_decrypt(base64_decode($input),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);return $data;}}#js端
<script type="text/javascript" >var key_base = 'contentWindowHig';var iv_base = 'contentDocuments'var key_hash = CryptoJS.MD5(key_base).toString();var iv_hash = CryptoJS.MD5(iv_base).toString();var key = CryptoJS.enc.Utf8.parse(key_hash.substr(0,16));var iv = CryptoJS.enc.Utf8.parse(iv_hash.substr(0,16));function _decrypt(string) {var data = CryptoJS.AES.decrypt(string, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);return data;}function _encrypt(string) {var data = CryptoJS.AES.encrypt(string, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7}).toString();return data;}var a = _encrypt('msgg');var b = _decrypt(a);var c= _decrypt('evD5EE8QGSWpuqzhDFaamw==')console.log(a);console.log(b);console.log(c);
</script>

cryptoJS 安装与使用相关推荐

  1. cryptojs aes加密每次结果不同_Javascript加密算法标准库,支持Nodejs+浏览器——crypto-js...

    介绍 crypto-js是一个前端Javascript标准加密算法库,CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法.有时候项目涉及到的敏感数据比较多,为 ...

  2. 史上最全总结!爬虫常见加密解密算法

    文章目录 简介 JavaScript 加密解密模块 Crypto-JS Node-RSA JSEncrypt Python 加密解密库 Cryptodome & Crypto Hashlib ...

  3. uni-app和php交互DES加密解密数据

    1 uni-app操作 (1) 打开HBuilderX的视图->显示终端 cd 切换到你项目的根目录 执行命令 npm install crypto-js 安装成功后你的项目根目录会生成node ...

  4. uni-app项目实现用户注册密码前端页面加密

    uni-app项目下引入crypto-js.js实现密码加密 一.HBuilder 安装 crypto-js.js 视图==>显示终端==> cd 进入项目根目录 例如:demo\test ...

  5. 【Python网络爬虫】爬虫常见加密解密算法

    ](https://img2020.cnblogs.com/blog/2501174/202108/2501174-20210816091906408-1932195692.png) 简介# 本文总结 ...

  6. 爬虫常见的加密解密算法

    简介 本文总结了在爬虫中常见的各种加密算法.编码算法的原理.在 JavaScript 中和 Python 中的基本实现方法,遇到 JS 加密的时候可以快速还原加密过程,有的网站在加密的过程中可能还经过 ...

  7. vue AES加密(URLEncode加密)

    目录 第一步:安装crypto-js 第二步:新建一个crypto.js文件 第三步:在需要的地方引入 第四步:AES加密+URLEncode加密 第五步:AES解密+URLEncode解密 第一步: ...

  8. 关于 localStorage 的一些高阶用法

    很多人在用 localStorage 或 sessionStorage 的时候喜欢直接用,明文存储,直接将信息暴露在:浏览器中,虽然一般场景下都能应付得了且简单粗暴,但特殊需求情况下,比如设置定时功能 ...

  9. 【JS】1347- localStorage 的高阶用法

    很多人在用 localStorage 或 sessionStorage 的时候喜欢直接用,明文存储,直接将信息暴露在:浏览器中,虽然一般场景下都能应付得了且简单粗暴,但特殊需求情况下,比如设置定时功能 ...

最新文章

  1. 华为如何打造智能终端的有趣灵魂?(下)
  2. 从零开始Code Review
  3. SpringCloud系列之服务消费Ribbon和Feign区别
  4. 敏捷开发模式下如何更好的进行测试
  5. erp系统原理和实施第五版pdf_【图片】生产制造企业ERP系统选型及实施“避坑”指南!【企业管理软件吧】...
  6. kali linux 搜狗输入法,kali_Linux下安装搜狗输入法
  7. 一致性Hash简单介绍和使用
  8. 《Python程序设计开发宝典》全面上架(新书超低价优惠+转发积攒送书)
  9. java 线程map_map集合分割以及多线程处理数据
  10. 开发宝典:基于分布式对象的网游程序结构设计
  11. 如何求递归算法的时间复杂度
  12. ElasticSearch学习(一):Linux环境准备
  13. Win11改Win10右键菜单
  14. 算法工程师大致是做什么的
  15. 八孔g调短洞箫_八孔g调洞箫曲谱_八孔G调箫G调简谱
  16. 四足机器人仿真 Matlab
  17. mt管理器主题修改教程_微信皮肤主题怎么弄 微信设置更换修改气泡和主题教程...
  18. java地图代码_如何在Java中生成地图?
  19. SQL Server关于AlwaysOn的理解
  20. 百度搜狗360快速排名可以解决网站排名的哪些问题呢?

热门文章

  1. 【并行计算】Bitonic Sort(双调排序)基础
  2. 51job前程无忧网站打不开,51job网站进不了,51job打不开
  3. WebServer【笔记2】
  4. 阿里腾讯字节,谁才是真正的福利大厂
  5. 表白神器——python,一“枪”一个准,限用一次!!(两次以上就无效了)
  6. 机器学习实战之路 —— 4 Boosting算法
  7. 集成学习-Bagging和Boosting算法
  8. applet java_Java Applet攻击以北约为目标,Java开发人员对点击诱饵感到愤怒
  9. 深度学习在超分辨率重建上的应用SRCNN,FSRCNN,VDSR,DRCN,SRGAN
  10. 美团小游戏守卫羊村玩法介绍和游戏漏洞