cryptopp中的des和 网上找的des,算出来结果不一样

aj3423 aj3423 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
某网上找的des算法,这个算法应该没问题,因为某知名软件中使用了相同的算法,相同的输入,会有相同的输出。
比如:

string key = "ef73781e"; // key

string plain;
plain.assign("\xDF\xF8\x39\xAA\xBC\x7A\xF9\x8E", 8); // 输入是加密过的数据

CDes des;
string decrypted = des.Des_DecryptText(plain, key); // des解密
display(decrypted);

// 正确的输出: 52 8B F3 B6 EA 72 2C 68

但用cryptopp::des来解相同的数据/key, 结果却不对:
string key = "ef73781e";

string plain;
plain.assign("\xDF\xF8\x39\xAA\xBC\x7A\xF9\x8E", 8);

char buf[128];
memset(buf, 0, sizeof(buf));

DES::Decryption d;
d.SetKey((uchar*)key.data(), DES::KEYLENGTH);
d.ProcessBlock((uchar*)plain.data(), (uchar*)buf);

dump_hex("cryptopp", buf, 8); // 输出不对。

请问是为啥。
...全文
评论 2
收藏 已收藏
分享
返回顶部
aj3423
图形处理/算法 19,463 成员 50,678 内容