js AES-128-CBC 解密易班轻应用verify_request
2021-04-25 23:26
YPE html>
标签:write 技术 stat ring 加密算 temp 代码 code its
易班文档
易班轻应用框架服务通过get方式在易班客户端webview或浏览器重定向加载应用实际地址,以提供给应用用户授权状态和基本信息数据, 请避免应用实际地址使用自带get参数。加密字符串使用了AES-128-CBC对称加密算法,其中应用的AppSecret为解密的密钥,AppID为向量。 原32字符长度appID应用依旧采用AES-256-CBC对称加密算法。
使用CryptoJS进行解密,CryptoJS解密base64格式的密文,返回的verify_request为16进制格式的,所以要将16进制转为base64格式,加密方法为AES-128-CBC,填充ZeroPadding
function decrypted(data) {
var padding = '0000000000000000000';
var temp_key = AppSecret;
var temp_iv =AppID;
var key = CryptoJS.enc.Latin1.parse(temp_key.substring(0, 32));
var iv = CryptoJS.enc.Latin1.parse(temp_iv.substring(0, 16));
var decrypted = CryptoJS.AES.decrypt(sha1_to_base64(data), key, { iv: iv, padding: CryptoJS.pad.ZeroPadding });
var decodeData = decrypted.toString(CryptoJS.enc.Utf8);
return JSON.parse(decodeData);
}
function sha1_to_base64(sha1) {
var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64_rep = "";
var cnt = 0;
var bit_arr = 0;
var bit_num = 0;
for (var n = 0; n = 'A' && sha1[n] = 'a' && sha1[n] = 6) {
bit_num -= 6;
base64_rep += digits[bit_arr >>> bit_num];
bit_arr &= ~(-1 0) {
bit_arr 0) {
for (var n = 0; n
完整代码
Document
hello
参考
JS:十六进制字符串转为base64
https://blog.csdn.net/herongoal/article/details/81137895
ase在线解密
http://ctf.ssleye.com/caes.html
CryptoJS
https://github.com/sytelus/CryptoJS
js AES-128-CBC 解密易班轻应用verify_request
标签:write 技术 stat ring 加密算 temp 代码 code its
原文地址:https://www.cnblogs.com/lzyuid/p/12228285.html
上一篇:利用kubernetes 安装 Kubernetes Dashboard
下一篇:修改现有消息类让.net core项目支持Protobuf - 【无需使用 [ProtoBuf.ProtoContract] 的方法】
文章标题:js AES-128-CBC 解密易班轻应用verify_request
文章链接:http://soscw.com/index.php/essay/79561.html