我正在使用基于 Windows 的 Subversion,并想在 .NET 中编写一个简单的实用程序来处理 Apache 密码文件。我知道它使用了一个称为 MD5Crypt 的函数,但我似乎无法找到该算法的描述,除此之外,它有时使用 MD5 创建哈希。
有人可以描述 MD5Crypt 算法和密码行格式吗?
在http://www.akkadia.org/drepper/SHA-crypt.txt上更新了用于 sha256 和 sha512 的加密算法的精确文本描述
它包括与 MD5 算法的对比,因此它应该为您提供所需的内容。
您可以在tcllib 包中找到 md5crypt 的实现。可从sourceforge下载。
您还可以在 CAS Generic Handler 的源代码中找到与 apache 兼容的 md5crypt 示例
MD5Crypt 基本上是老式 unix crypt 函数的替代品。它是在 freebsd 中引入的,并且也被其他团体采用。
基本思想是这样的:
但是有一个问题:
因此,我们可以在密码中添加一个“salt”字符串。
您提到.net,在另一个论坛中有一个指向此的指针:
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new
System.Security.Cryptography.MD5CryptoServiceProvider();
string hash =BitConverter.ToString((md5.ComputeHash(
System.Text.ASCIIEncoding.Default.GetBytes(stringtohash) ) ));
!