Вы уверены, что Вам будут только когда-либо требоваться часы и минуты? Если Вы хотите сделать что-либо значимое с ним (как, например, вычисляют отрезки времени между двумя такими точками данных), не наличие информации о часовых поясах и DST может дать неправильные результаты. Часовые пояса, возможно, не применяются в Вашем случае, но DST несомненно будет.
Попробуйте это
using System.Security.Cryptography
public static string HashPassword(string unhashedPassword)
{
return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(unhashedPassword))).Replace("-", String.Empty).ToUpper();
}
BitConverter работает нормально ...
var testVal = "asdasd";
var enc = new ASCIIEncoding();
var bytes = enc.GetBytes( testVal );
var sha = new SHA512Managed();
var result = sha.ComputeHash( bytes );
var resStr = BitConverter.ToString( result );
var nodash = resStr.Replace( "-", "" );
nodash.Dump();
(Исправлено для 512-битного хеша, извините :)