MD4和MD5加密之间的区别

时间:2014-10-27 09:47:27

标签: c# encryption

在编码期间,我使用了MD4和MD5加密技术。但是他们之间没有任何明显的安全差异。然而,他们中的大多数人更喜欢MD5,实际上是指定它。 MD5:

System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();

byte[] TDESKey = null;

TDESKey = HashProvider.ComputeHash(UTF8.GetBytes("CXPUB001"));  // ASYNC PRIVATE KEY CODE FOR DATA ENCRYPTION

//DATA ENCRYPTION 
TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
TDESAlgorithm.Key = TDESKey; //SENDER KEY APPENDED
TDESAlgorithm.Mode = CipherMode.ECB;
TDESAlgorithm.Padding = PaddingMode.PKCS7;
byte[] DataToEncrypt = UTF8.GetBytes(Message);

那么,使用MD4和MD5之间有什么区别,安全性呢?

2 个答案:

答案 0 :(得分:2)

MD4& MD5不是加密,它们是产生128位散列值的散列函数。如果您需要加密,请使用AES

等适当的加密技术

并加入"安全" MD5的一个方面,它被声明为不可用,因为有几个漏洞可能导致hash collision,最糟糕的是,使用彩虹表将密文反转回其原始值。如果您需要散列,请使用SHA-2

答案 1 :(得分:1)

MD5于1991年设计为安全替代品。 (后来在Hans Dobbertin的MD4中确实发现了弱点

MD4的安全性受到严重影响。第一次针对MD4的全面碰撞攻击于1995年发布,此后又发布了几次新的攻击。截至2007年,攻击可能在少于2个MD4哈希操作中产生冲突。

以下是MD4和MD5之间的区别:

  1. 已添加第四轮。

  2. 现在每个步骤都有一个独特的添加常数。

  3. 第2轮中的函数g从(XY v XZ v YZ)变为(XZ v Y)     不是(Z))使g不那么对称。

  4. 现在,每个步骤都会添加上一步的结果。这促进了     更快的“雪崩效应”。

  5. 在第2轮和第3轮中访问输入词的顺序是     改变了,使这些模式不那么像彼此。

  6. 每轮的转移量大致已经过优化,     产生更快的“雪崩效应”。不同回合的转变     是截然不同的。