2012-01-06 27 views
5

Bir web servisine iletilecek SHA256 hash değerinde birleştirilmesi gereken bir dizi değere sahibim. Bu değerler Encoding.ASCII.GetBytes (allparametershere) kullanılarak bir byte dizisine birleştirilir ve sonra myHashMethod.ComputeHash (allParameterByteArray) tarafından SHA256'ya gönderilir. Bu değeri bir istek başlığına eklemem gerektiğinden, istek başlığına bir dize olarak geçirilmelidir. 3. parti sistemi devletinC# hashed bayt dizisi API'ye geçmek için dizeye nasıl dönüştürülür?

şartlar o dizenin 64 karakter Hex biçiminde olması gerektiğini söyledi. Geçmişte Convert.Base64String'i kullandım, ama sanırım böyle bir ip geçirirken sadece hata aldığım için aradıkları şey değil. Herhangi bir fikir?

Teşekkürler!

cevap

10

Bu, büyük harf Hex olarak sonuç verecektir, küçük bir durum oluşturmak için X'i x olarak değiştirin.

SHA256 Hash sonucunu belirlemek için SHA256 dosyasını değiştirin.

byte[] SHA256Result; 
StringBuilder stringBuilder = new StringBuilder(); 

foreach(byte b in SHA256Result) 
    stringBuilder.AppendFormat("{0:X2}", b); 

string hashString = stringBuilder.ToString(); 

çıkan dize hashString edilir ve zihin SHA256Result sunulmalıdır uzunluğu 64 olmalıdır 32 bayt.

+0

Bunun yerine bir 'StringBuilder' ve' AppendFormat() 'kullanmalısınız? – Nuffin

+0

Yup, iyi not;) – craig1231

+0

değişti Teşekkür ederim. Benim için çalıştı. 7-Zip'den alınan sonuca göre düzgün bir şekilde karşılaştırır. – FernandoZ

İlgili konular