mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-20 10:25:01 +08:00
夜幕-第13课练习题解密AES 并不是每次都奏效
This commit is contained in:
parent
70efb0c238
commit
2b86d5ab93
BIN
img/123.png
Normal file
BIN
img/123.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -1,18 +1,13 @@
|
||||
const CryptoJS = require("crypto-js");
|
||||
|
||||
encrypted = 'jdGUW9raTa4ekejTjLxrcu3q9Ir30gz8VJeCwifzyc5JP8m2vtBqW0HzNzJ9lCLd';
|
||||
secret = {
|
||||
"words": [
|
||||
895574833,
|
||||
878916963,
|
||||
875573601,
|
||||
943076149
|
||||
],
|
||||
"sigBytes": 16
|
||||
};
|
||||
let value = '{"o00o0o00o0o0o0":"eval0514undefined"}'; //待加密的字符串
|
||||
let secret_value = "8f03e080ec3f9a5d"; //密匙 16位
|
||||
|
||||
// 解密,传入密文,密钥盒向量设置加密与填充模式
|
||||
let decrypted = CryptoJS.AES.decrypt(encrypted, secret, {
|
||||
// 密匙和向量处理
|
||||
let secret = CryptoJS.enc.Utf8.parse(secret_value);
|
||||
|
||||
// 加密
|
||||
let encrypted = CryptoJS.AES.encrypt(value, secret, {
|
||||
// mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC
|
||||
mode: CryptoJS.mode.ECB,
|
||||
|
||||
@ -20,8 +15,7 @@ let decrypted = CryptoJS.AES.decrypt(encrypted, secret, {
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
|
||||
// 将解密结果转换为utf8字符串
|
||||
decrypted = CryptoJS.enc.Utf8.stringify(decrypted);
|
||||
// 将加密结果转换为字符串
|
||||
encrypted = encrypted.toString();
|
||||
|
||||
console.log(encrypted);
|
||||
console.log(decrypted);
|
@ -2,7 +2,7 @@
|
||||
|
||||
请问:
|
||||
|
||||
请给出你模拟的加密内容 text (此值为固定字符串)
|
||||
如果加密密钥 key 为 8f03e080ec3f9a5d,那么加密后的密文 arg 是多少?
|
||||
|
||||
# 复习AES对称加密
|
||||
|
||||
@ -94,3 +94,49 @@
|
||||
|
||||

|
||||
|
||||
我们来看代码
|
||||
|
||||
o0oo0o00 = o00o0o00.o00o0o00o0o0.o00o0o00orypt(_$vD[_$jG()](_$jj() + "ify")({
|
||||
o00o0o00o0o0o0: _$jG() + "0514" + _$he()
|
||||
}), o00o0o00o0o0o00, {
|
||||
mode: o00o0o00.mode.o00o0o00o0o0o,
|
||||
padding: o00o0o00.pad.o00o0o00o0o0o0
|
||||
}).toString();
|
||||
|
||||
value 是
|
||||
|
||||
_$vD[_$jG()](_$jj() + "ify")({
|
||||
o00o0o00o0o0o0: _$jG() + "0514" + _$he()
|
||||
})
|
||||
|
||||

|
||||
|
||||
结果是 '{"o00o0o00o0o0o0":"eval0514undefined"}'
|
||||
|
||||
代码模拟
|
||||
|
||||
const CryptoJS = require("crypto-js");
|
||||
|
||||
let value = '{"o00o0o00o0o0o0":"eval0514undefined"}'; //待加密的字符串
|
||||
let secret_value = "8f03e080ec3f9a5d"; //密匙 16位
|
||||
|
||||
// 密匙和向量处理
|
||||
let secret = CryptoJS.enc.Utf8.parse(secret_value);
|
||||
|
||||
// 加密
|
||||
let encrypted = CryptoJS.AES.encrypt(value, secret, {
|
||||
// mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC
|
||||
mode: CryptoJS.mode.ECB,
|
||||
|
||||
// NoPadding, zeropadding 默认Pkcs7 即 pkcs5
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
|
||||
// 将加密结果转换为字符串
|
||||
encrypted = encrypted.toString();
|
||||
|
||||
console.log(encrypted);
|
||||
|
||||
结果
|
||||
|
||||
B2v6O5Kjg1DAYXSd09PlD/7+5ExifLq3L5a/wucoXOZnUpp/kMmSranYt17DAqjI
|
Loading…
x
Reference in New Issue
Block a user