1

私はこの次の C# コードを持っていますが、PHP mcrypt_decrypt() のパラメーターを追加するのに苦労しています。

  private string Decrypt(string strText, string sDecrKey)
    {
        string message;
        byte[] rgbKey = new byte[0];
        byte[] rgbIV = new byte[] { 0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef };
        byte[] buffer = new byte[strText.Length + 1];
        try
        {
            rgbKey = Encoding.UTF8.GetBytes(Strings.Left(sDecrKey, 8));
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            buffer = Convert.FromBase64String(strText);
            MemoryStream stream2 = new MemoryStream();
            CryptoStream stream = new CryptoStream(stream2, provider.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
            stream.Write(buffer, 0, buffer.Length);
            stream.FlushFinalBlock();
            message = Encoding.UTF8.GetString(stream2.ToArray());
        }
        catch (Exception exception1)
        {
            ProjectData.SetProjectError(exception1);
            Exception exception = exception1;
            message = exception.Message;
            ProjectData.ClearProjectError();
            return message;
            ProjectData.ClearProjectError();
        }
        return message;
    }

文字列 mcrypt_decrypt (文字列 $cipher 、文字列 $key 、文字列 $data 、文字列 $mode [, 文字列 $iv ] )

私のデータは-:"iHcKDE0aeDZU3q31ULZcvQ=="

鍵-: "&%#@?、:*"

PHP mcrypt_decrypt () 関数を使用してこのデータを復号化したい。C# の知識はほとんどありませんが、PHP は得意です。私を助けてください

<?php
$key = pack("nvc*",0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef);
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CFB)
$ciphertext_dec = base64_decode("iHcKDE0aeDZU3q31ULZcvQ==");
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
$retval = mcrypt_decrypt(MCRYPT_3DES, $key, $ciphertext_dec, MCRYPT_MODE_CFB, $iv_dec);
echo $retval;
?>
4

1 に答える 1