如何在C#中使用MD5哈希,密钥和IV通过TripleDES解密文件?

时间:2019-07-02 01:16:30

标签: java c# encryption md5 tripledes

我一直试图找出答案。背景故事:有人给了我一个加密文件。他告诉我密钥,MD5哈希,填充和模式。他使用“ DESede” SecretKeySpec实例在Java中对其进行了加密。我正在尝试解密C#中的文件。

FBArr是24字节密钥。 P1 = file.readallbytes(path)

        string plaintext = "";
        using (TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider())
        {
            tdes.Mode = CipherMode.ECB;
            tdes.Padding = PaddingMode.PKCS7;
            MD5CryptoServiceProvider MD5b = new MD5CryptoServiceProvider();

            ICryptoTransform decryptor = tdes.CreateDecryptor(FBArr, FBArr);
            using (MemoryStream ms = new MemoryStream(p1))
            {
                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                {
                    using (StreamReader reader = new StreamReader(cs))
                        plaintext = reader.ReadToEnd();
                }
            }
        }

从代码中可以看到,MD5b变量不执行任何操作。而且,IV刚好设置为Key。即使存在这些问题,我也可以解密一半的文件。我需要解密文件的其余部分。

我的问题是:如何使用MD5哈希和IV辅助解密?

我认为我没有使用MD5哈希的事实是我的密钥没有完全解密整个文件的原因。 我完全理解MD5和TripleDES不再安全,因此将来不应该使用此方法。我没有打那个电话。我只需要使用提供给我的加密来解决这个问题。

0 个答案:

没有答案