我有一个带有 RC4 加密凭据的文件,负责将此类凭据写入文件的代码如下:
sub dummyFunction() {
# Useless stuff for the scope of the problem
# ...
my $dbHost = "localhost";
my $passphrase = "123"; # For example purposes, logic is different.
my $cipher = Crypt::RC4->new($passphrase);
return unpack('H*',$cipher->RC4($dbHost));
}
所以那段代码会返回类似:3F9FDCE3891C6B8851
但如果我尝试以下操作:
sub anotherDummyFunction() {
my $ciphered_text = &dummyFunction();
my $passphrase = "123";
my $cipher = Crypt::RC4->new($passphrase);
print $cipher->RC4(pack('H*',$ciphered_text));
}
我期待看到localhost
,但相反,我得到了一堆字节,那么我将如何取回原始文本?
我已经用我的密码和我的十六进制编码字符串在线检查了 RC4 解密器,并且在线 RC4 解密器确实返回localhost
,所以我确信加密的字符串是正确的。
谢谢!
PS:上面的例子在一个孤立的环境中工作,但是当涉及到我的脚本时它没有。我无法取回原始字符串。