Мне было интересно, может ли кто-нибудь помочь мне преобразовать этот метод в рубин, возможно ли это вообще?
public static string getSHA512(string str){
UnicodeEncoding UE = new UnicodeEncoding();
byte[] HashValue = null;
byte[] MessageBytes = UE.GetBytes(str);
System.Security.Cryptography.SHA512Managed SHhash = new System.Security.Cryptography.SHA512Managed();
string strHex = "";
HashValue = SHhash.ComputeHash(MessageBytes);
foreach (byte b in HashValue){
strHex += string.Format("{0:x2}", b);
}
return strHex;
}
заранее спасибо
ОБНОВИТЬ:
Я просто хотел бы прояснить, что, к сожалению, этот метод предназначен не только для генерации SHA512, но и для пользовательского. Я считаю, что Digest::SHA512.hexdigest будет просто экземпляром SHHast, но если вы внимательно посмотрите на этот метод, вы увидите, что он немного отличается от простой генерации хэша. Следует за результатом обеих функций.
# in C#
getSHA512("hello") => "5165d592a6afe59f80d07436e35bd513b3055429916400a16c1adfa499c5a8ce03a370acdd4dc787d04350473bea71ea8345748578fc63ac91f8f95b6c140b93"
# in Ruby
Digest::SHA512.hexdigest("hello") || Digest::SHA2 => "9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043"