项目里使用过md5、base64,使用AES的安全系数会高一些。

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法,微信小程序加密传输就是用这个加密算法的。由于h5项目需要从安卓app和ios拿到AES加密数据进行处理,所以根据安卓给的代码加上万能的百度快速得看了一下AES。

对称加密算法也就是加密和解密用相同的一些参数:

  • 密钥key
  • 偏移量十六进制iv
  • 编码Base64还是Hex
  • 模式mode 选择ECB还是CBC...
  • 填充Pkcs5P还是Pkcs7P...
  • 字符集是utf8还是gbk...

以上内容,不管是从后端拿文进行解码,还是后端从前端拿文解码,都需要保持以上参数一致。

第一次接触AES的人可能有点迷糊,盲目抄代码是没用的,要先了解AES究竟需要什么参数进行转换的。盲目到处搜索和抄代码只会浪费时间,不如去快速了解一下这个东西究竟是什么

可能以上的内容让你有点还是搞不懂,那么看看这个AES在线转码可能就能理解一些了。

SSL在线工具-AES在线加解密-AES encryption-SSLeye官网

这次我拿ECB模式、pks5、utf8、base64、密码为:~!@#$%^&*()_+123,进行加密,如图:

加密出来的密文是:FVRywVYCoT/SNpJRlhGypQ==

看看解密出来的是什么

引入crypto-js 

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"></script>

js代码解密得出 hello

// 解密事件---
function decipherinHandler(word) {var key = CryptoJS.enc.Utf8.parse("~!@#$%^&*()_+123");//密码 utf8var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB,//模式padding: CryptoJS.pad.Pkcs7});console.log('decipherin:',CryptoJS.enc.Utf8.stringify(decrypt).toString())return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
decipherinHandler('FVRywVYCoT/SNpJRlhGypQ==');//decipherin: hello

js代码字符串 hello 进行AES加密 得出:FVRywVYCoT/SNpJRlhGypQ==

// 加密事件
function encryptionHandler(word) {var key = CryptoJS.enc.Utf8.parse("~!@#$%^&*()_+123");var srcs = CryptoJS.enc.Utf8.parse(word);var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});console.log('encryption:',encrypted.toString());return encrypted.toString();
}
encryptionHandler('hello')//encryption:FVRywVYCoT/SNpJRlhGypQ==

前端JavaScript AES解密 AES加密 ECB模式相关推荐

  1. 微信小程序 AES加密ECB模式

    微信小程序 AES加密网上大部分是CBC模式,但是java后台用的是ECB模式 ECB模式 js文件下载 下载链接 (有好多写着ECB模式,但是下载了还是CBC的,可恨-) 下面展示一下两种模式解密结 ...

  2. Android AES文件加密 ECB模式

    项目过程中遇到一个新需求,对文件进行AES加密解密,要求用ECB模式,这里记录一下 网上找了很多资料,对字符串进行加密很多,可是我需要的是对文件进行加密,一开始的思路是把文件内容读出来,然后对这些内容 ...

  3. openresty Aes解密 Java 加密

    之前提到.会采用openresty作为网关进行加解密.在实践的过程中.第一步就要调整代码了.我们之前Java采用的是AES/CBC/PKCS5Padding的填充方式,而openresty的aes.l ...

  4. python加密方式-AES加密ECB模式

    安装所需包 pip install pycryptodome 编写代码 import base64from Crypto.Cipher import AES from Crypto.Util.Padd ...

  5. php ecb加密,PHP之DES加密解密算法类(ECB模式)(实例教程)

    PHP中加密解密函数与DES加密解密的应用实例:<?php define('SMS_KEY', 'K0e5293b'); class DesUtil{ public function encry ...

  6. JAVA 3DES加密 ECB模式 ZeroPadding填充

    3DES ECB ZeroPadding 前言 解决 相关类 前言 因金融机构支付相关的接口需要对敏感数据加密,采用3DES加密.刚开始以为这个加密网上找一大堆,没想到一无所获. 解决 由于不熟悉这个 ...

  7. golang实现AES ECB模式的加密和解密

    最近有一个需求需要在golang中实现AES ECB模式的加密和解密,  看了一下官方文档和相关资料发现golang 官方包并没有完善的实现,于是自己尝试写了一个,本文中的AES算法是基于ECB模式, ...

  8. Python实现AES中ECB模式pkcs5padding填充加密/解密(需要加密文档中可以有中文)

    Python实现AES中ECB模式pkcs5padding填充加密/解密(需要加密文档中可以有中文) 一.本文主要解决的问题 二.完整版代码 结果: 三.遇到的问题 1.填充格式错误 2.传入类型错误 ...

  9. php实现aes ecb模式加密,PHP、Python、Java的AES ECB加密实现-Fun言

    AES加密 ECB模式 PKCS5填充 128位密码/密码块 ECB模式是将明文按照固定大小的块进行加密的,块大小不足则进行填充,ECB模式没有用到向量. 具体加密算法,请参见米扑博客总结的系列文章: ...

最新文章

  1. 41-First Missing Positive
  2. 【机器学习】FaceBook开源全网第一个时序王器--Kats。
  3. [转载] Python京东抢购
  4. mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事
  5. 【Day34】Pyhotn之路——网络编程
  6. 前端获取小程序二维码参数_微信小程序实现带参分享并消息卡片获取参数
  7. rhel6.3搭建iscsi-target服务器实战
  8. 内控堡垒机:内网安全威胁的“终结者”
  9. 计算机与汉字+输入速度+云输入法,计算机汉字三码输入法的制作方法
  10. Spring Cloud入门+深入(十二)-Gateway网关(一)
  11. 开通微信支付分最新教程来了!
  12. 惠普计算机不启动不了系统还原,惠普电脑win10进不了系统怎么恢复系统
  13. 在EXCEL下用VBA编程提高人事数据的管理效率
  14. 翻阅笔记所得杂记若干
  15. 为什么java中的时间是从1970年1月1日开始的?
  16. python识别图片中的物体_python3+opencv3识别图片中的物体并截取的方法
  17. mysql“Access denied for user 'root'@'IP地址'
  18. k8s部署-41-对POD进行重新认识(下)
  19. 智慧工业园区建设规划方案
  20. ccna考试流程|ccna考试费用-ielab

热门文章

  1. 基于STC89C52单片机的温度控制系统设计方案与软硬件实现
  2. vhdl计算机语言,八周造个CPU(1):VHDL语言的实现和仿真方法,简单PC模块的实现和仿真...
  3. Matlab求解非线性规划
  4. 计算机颜色对照图,RGB颜色查询对照表
  5. 统计 十位 比 个位 大的数
  6. 个人使用 UE4 C++ 函数库(AES-ECB加密注册机)
  7. Win9x在Intel和AMD新处理器虚拟机抽风的原因及补丁
  8. 中国联通网上4G商城营业厅VIP客户俱乐部简介
  9. “大玩家”登场,暴风TV的AI版图再下一城
  10. 软件测试行业一定要懂代码么?想学软测的先看了这篇文章再考虑吧