看到个网站,有好玩的,请求的图片直接是加密过的,然后调用浏览器里的js解密的。
人家的解密算法。
aesDecrypt(encrypted, key) { let decrypted = CryptoJS.AES.decrypt(encrypted, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); decrypted = CryptoJS.enc.Utf8.stringify(decrypted); return decrypted; },
图片链接是这样的
let jsKey = CryptoJS.enc.Utf8.parse('AZXCD67812345678');
listener.el.src = "data:image/png;base64," + aesDecrypt(res.data + "", jsKey)
大概就是这个意思吧。
看了下aardio里的例子默认是工作模式CBC,填充模式PKCS5。
看了下源码,初始可以直接设置的。
取数据保存成图片
var aes = crypt.aes();
var pass = "AZXCD67812345678";
aes.setPassword(pass);
aes.setKeyParamMode(2/*_CRYPT_MODE_ECB*/);
aes.setKeyParamPadding(0x10001/*_X509_PKCS_7_ASN_ENCODING*/);
base64 = crypt.bin.decodeBase64(base64);
img = aes.decrypt(base64);
img = crypt.bin.decodeBase64(img);
string.save("\2.png",img);