cryptojs TDES 转换为 OPENSSL
cryptojs TDES convert to OPENSSL
我在 nodejs
中写了这段代码,用 TripleDES
解密 459508BB6B65C5A304D3EFB133038A14
:
C = require("crypto-js");
text = C.enc.Hex.parse("459508BB6B65C5A304D3EFB133038A14");
key = C.enc.Hex.parse("90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96");
iv = C.enc.Hex.parse("E6B9AFA7A282A0CA");
var d = C.TripleDES.decrypt(
{
ciphertext: text
},
key,
{
iv: iv,
mode: C.mode.CBC
}
);
var r = d.toString(C.enc.Utf8);
console.log(r);
现在我想在命令行上用 OpenSSL
解密它。我尝试了这个命令但没有用:
echo -n 459508BB6B65C5A304D3EFB133038A14 | openssl enc -des3 -d -K 90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96 -iv E6B9AFA7A282A0CA -nopad
此命令无效,return 解密文本错误
您忘记对密文本身进行十六进制解码,尝试:
echo -n 459508BB6B65C5A304D3EFB133038A14 | xxd -p -r | openssl enc -des3 -d -K 90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96 -iv E6B9AFA7A282A0CA
此处xxd
进行十六进制解码,使用:
-p | -ps | -postscript | -plain
output in postscript continuous hexdump style. Also known as plain hexdump style.
-r
reverse operation: convert (or patch) hexdump into binary.
然后打印出12个字符,包括最后一个space字符:
1 0 6 4 0 3
请注意,我还删除了 -nopad
,因为它不再需要; crypto-js 使用 OpenSSL 兼容的填充(嗯,openssl 兼容 一切 真的)。
我在 nodejs
中写了这段代码,用 TripleDES
解密 459508BB6B65C5A304D3EFB133038A14
:
C = require("crypto-js");
text = C.enc.Hex.parse("459508BB6B65C5A304D3EFB133038A14");
key = C.enc.Hex.parse("90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96");
iv = C.enc.Hex.parse("E6B9AFA7A282A0CA");
var d = C.TripleDES.decrypt(
{
ciphertext: text
},
key,
{
iv: iv,
mode: C.mode.CBC
}
);
var r = d.toString(C.enc.Utf8);
console.log(r);
现在我想在命令行上用 OpenSSL
解密它。我尝试了这个命令但没有用:
echo -n 459508BB6B65C5A304D3EFB133038A14 | openssl enc -des3 -d -K 90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96 -iv E6B9AFA7A282A0CA -nopad
此命令无效,return 解密文本错误
您忘记对密文本身进行十六进制解码,尝试:
echo -n 459508BB6B65C5A304D3EFB133038A14 | xxd -p -r | openssl enc -des3 -d -K 90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96 -iv E6B9AFA7A282A0CA
此处xxd
进行十六进制解码,使用:
-p | -ps | -postscript | -plain output in postscript continuous hexdump style. Also known as plain hexdump style. -r reverse operation: convert (or patch) hexdump into binary.
然后打印出12个字符,包括最后一个space字符:
1 0 6 4 0 3
请注意,我还删除了 -nopad
,因为它不再需要; crypto-js 使用 OpenSSL 兼容的填充(嗯,openssl 兼容 一切 真的)。