問題は32文字列がC#.NETでは動作しますが、php mcryptでは動作しません。 (私はAESでそれを行うための方法を持って、3DESが開いたまま。C#とPHPの暗号化/暗号化の問題(keysize)
私は、データの暗号化と復号化に.NETおよびPHPのmcryptの中にMicrosoftの暗号化のAPIを使用して暗号化APIを作成しようとしている。
C#は暗号化と解読ができるはずですが、PhPは解読する必要があります。問題は私が自分の鍵を定義できるようにすることです。これを行うには、md5が入力したパスワードをハッシュします。 C#側ではなく、PHPで取得する
警告:mcrypt_decrypt()[function.mcrypt-decrypt]:C:\ xampp \ htdocs \ failcrypt \ crypt.phpのこのアルゴリズムでは、鍵のサイズが大きすぎます40行目
(空の文字列も有効です)、かなり大きなキーが必要です。
私が見つけることができるすべてのリンクはプリセットキーを持っていますが、私は両側の任意のキーサイズで動作する必要があります。
echo $key."</br>";
echo md5($key)."</br>";
$newKey = md5($key)."</br>";
echo strlen($newKey)."</br>";
$decrypted = mcrypt_decrypt(MCRYPT_3DES, md5($key), base64_decode($msg), MCRYPT_MODE_ECB);
echo $decrypted;
出力は
赤(キー)
bda9643ac6601722a28f238714274da4(ハッシュ)
あなたがそれを運んでいる間、何かキーのように見えます。私はエンコードの問題のにおいがしますが、あなたが書いたのはMD5のハッシュです。どのようにC#からPHPにキー文字列を渡すのですか? – hakre
@hakre鍵はハードコーディングすることができます。ちょうどphpとc#の両方が同じ鍵を使用できる必要があります –
うーん、あなたがあなたの質問に与えるstrlenは間違っています。私は、37ではなく32の得点を得る。 – hakre