39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace rosettaMySQL
|
|
{
|
|
class Hasher
|
|
{
|
|
private static string _BytesToHex(byte[] input)
|
|
{
|
|
var strBuilder = new StringBuilder();
|
|
foreach (byte _byte in input)
|
|
{
|
|
strBuilder.Append(_byte.ToString("x2"));
|
|
}
|
|
return strBuilder.ToString();
|
|
}
|
|
|
|
public static string Hash(string salt, string input)
|
|
{
|
|
using (MD5 md5 = new MD5CryptoServiceProvider())
|
|
{
|
|
var bytes = Encoding.Default.GetBytes(salt + input);
|
|
var data = md5.ComputeHash(bytes);
|
|
return _BytesToHex(data);
|
|
}
|
|
}
|
|
|
|
public static string GenSalt()
|
|
{
|
|
using (RandomNumberGenerator rng = new RNGCryptoServiceProvider())
|
|
{
|
|
var salt = new byte[16];
|
|
rng.GetBytes(salt);
|
|
return _BytesToHex(salt);
|
|
}
|
|
}
|
|
}
|
|
}
|