【发布时间】:2026-01-27 08:05:04
【问题描述】:
我正在使用Crypt::Rijndael 模块来解密一些应用程序数据。
我给出了加密数据、加密密钥和客户端 IV 作为输入。
在 432 个字节的应用程序数据中,解密输出的前 16 个字节总是错误的。
什么可能导致这个问题?
【问题讨论】:
-
向我们展示一些代码,并请解释在这种情况下“错误”是什么意思。
-
我建议您通过电子邮件发送给该模块的作者 Brian D Foy
,他是这里的偶尔贡献者。 -
我们怎么知道你做错了什么?
-
@ikegami 通过了解这种特殊情况下的 CBC 模式加密
-
代码是,使用 Crypt::Rijndael;我的 $crypted = pack("H*",加密的应用程序数据);我的 $key = pack("H*","4ffd099494d9cc0d0a6e238209038f27d56da73c8ce376e0b58678f1dd3d9656");我的 $iv = pack("H*", "6907fd4a18bacd7bbfb0bf61b28cd37c");我的 $cipher = Crypt::Rijndael->new($key, Crypt::Rijndael::MODE_CBC()); $cipher->set_iv($iv);我的 $plaintext = $cipher->decrypt($crypted); #my $hex = 解压 "H*",$plaintext;打印 $plaintext;
标签: perl cryptography encryption rijndael