2

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 : 上記の例は隔離された環境で動作しますが、私のスクリプトに関しては動作しません。元の文字列を取り戻すことはできません。

4

1 に答える 1