C# Generate a random Md5 Hash
如何在c_中生成随机MD5哈希值?
- 创建随机字符串-并为其生成MD5。但你为什么要那样的东西呢?如果您想要唯一的ID,那么只需使用Guid。
- 如何创建随机字符串?
- 为什么会有人需要创建随机MD5哈希。任何长度为128的字符串都可以是随机MD5哈希(至少我猜是这样)。
- @sudantha-请参阅此答案stackoverflow.com/questions/1122483/c-random-string-generato‌&8203;r/…
- @不,那不正确。MD5哈希仅包含数字和字符A、B、C、D、E和F(十六进制)。
- 是的,错过了。:)
一个随机MD5散列值实际上只是一个128位加密强度的随机数。
1 2 3 4 5 6 7 8 9 10 11
| var bytes = new byte[16];
using (var rng = new RNGCryptoServiceProvider ())
{
rng .GetBytes(bytes );
}
// and if you need it as a string...
string hash1 = BitConverter .ToString(bytes );
// or maybe...
string hash2 = BitConverter .ToString(bytes ).Replace("-", "").ToLower(); |
只需使用Guid.NewGuid()创建一个随机字符串,并生成其MD5校验和。
- 虽然guid是128位随机值,但6位是预先定义的。所以,即使在散列之后,也只有2^122个不同的散列值。使用RNGCryptoServiceProvider,您将拥有所有2^128值。实际上,guid内部也使用rngcryptoServiceProvider。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| using System.Text;
using System.Security.Cryptography;
public static string ConvertStringtoMD5 (string strword )
{
MD5 md5 = MD5 .Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword );
byte[] hash = md5 .ComputeHash(inputBytes );
StringBuilder sb = new StringBuilder ();
for (int i = 0; i < hash .Length; i ++)
{
sb .Append(hash [i ].ToString("x2"));
}
return sb .ToString();
} |
博客文章:如何将字符串转换为MD5哈希?