ができないのはなぜでC#復号の出力にはPerlのCrypt::Rijndael?
-
05-09-2019 - |
質問
ファイルは暗号化されているPerlです。初回復の試みに失敗したと思いるのは、検hoojoo going on(その他の設定が必要)
ダPerlコード:
use strict;
use Crypt::Rijndael;
my $key ='...';
my $rcipher = Crypt::Rijndael->new ($key, Crypt::Rijndael::MODE_CBC());
undef $/;
my $encrypted = <>;
print $rcipher->decrypt($encrypted);
C#復号化を実施
CryptoStream decryptor = null;
StreamReader srDecrypt = null;
FileStream fsIn = null;
RijndaelManaged rijndaelCipher = null;
string fileContents;
try
{
rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Key = Encoding.UTF8.GetBytes(Password);
rijndaelCipher.IV = Encoding.UTF8.GetBytes(Password);
rijndaelCipher.Padding = PaddingMode.None;
fsIn = new FileStream(FilePath, FileMode.Open);
decryptor = new CryptoStream(fsIn, rijndaelCipher.CreateDecryptor(), CryptoStreamMode.Read);
srDecrypt = new StreamReader(decryptor);
fileContents = srDecrypt.ReadToEnd();
}
finally
{
if (decryptor != null)
decryptor.Close();
if (fsIn != null)
fsIn.Close();
if (srDecrypt != null)
srDecrypt.Close();
if (rijndaelCipher != null)
rijndaelCipher.Clear();
}
どのようPerlコードを読む
binmode OUTF;
my $key ="..."; # Your secret key
my $rcipher = Crypt::Rijndael->new ($key, Crypt::Rijndael::MODE_CBC());
$rcipher->set_iv($key); # You may wish this IV to be something different from the Secret Key
my $plaintext = "Please encrypt me"; # Your string to be encrypted
if(length($plaintext) % 16 != 0 ) {
$plaintext .= ' ' x (16 - (length($plaintext) % 16)); }
my $rencrypted = $rcipher->encrypt($plaintext);
解決
私のmaintainerのPerlの Crypt::Rijndael.僕のオリジナルコースが、私はそれを動作させるために失敗した場合に他の人とする。
私もこのようにして RT#27632.この問題にしたステートがモジュール名から署名のintとして符号なしint.最新版 Crypt::Rijndael,1.07を持っているべきだ。バージョンです。
また、これらの問題はプラットフォームに依存します。見れば、rijndael.hコードを配布しますたぁってジャンプを通じめ、正しい知識を身につけましょうタイプのサイズのための各種プラットフォーム.フィギュアをまとめて窓なCygwin).るバージョンのWindowsです。
としてのRTチケットの最初のステップで暗号化に同じメッセージと同じ初期化ベクターの両方を用い Crypt::Rijndael とともに、C#の実装です。お客様は、同じ出力に出力します。が得られないときには、いくつかの同crypttextがあります。
私はこの作品を出すっ追跡することができるでし Crypt::Rijndael バグがしたいです。
おかげさ
他のヒント
いということWindows上でしか利用できません。いいバイナリデータであり、加する必要がある。Perl使用 binmode.と思うのを使用する必要がありBinaryReaderクライアントまで、フルのC#(がいないC#プログラマなっています
また、サイズはどうなりますか。んかしていることが特徴となった同様の問題PerlにC#の暗号化変換のIVのサイズの異なるPerlです。
ごキーサイズは256ビットの鍵をPerlコードが3バイト、12ビットだとPerlパッドです。
また釣りをした暗号化/復号化文字列?とることができることを検証することによるものであり、今から何かを暗号化ではなく、あくまでファイルの読み込み).