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
が、代わりに大量のバイトが表示されるので、元のテキストを取得するにはどうすればよいですか?
パスフレーズと 16 進数でエンコードされた文字列を使用してオンラインの RC4 デクリプタで確認済みで、オンラインの RC4 デクリプタが返さlocalhost
れるので、暗号化された文字列が正しいことを確信しています。
ありがとう!
PS : 上記の例は隔離された環境で動作しますが、私のスクリプトに関しては動作しません。元の文字列を取り戻すことはできません。