Nasıl PHP sha512 uyuyor C # bir SHA512 karma üretebileceği?

3 Cevap

Soru hemen hemen kendi kendini açıklayıcı. Ben, pek çok site, pek çok yöntem google'da birçok kodlamaları denedim, ama ben bu maç için alınamıyor.

Ben dize "asdasd" maç yapmak için çalışıyorum. (http://www.fileformat.info/tool/hash.htm?text=asdasd)

3 Cevap

Bu deneyin

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 sadece çalışıyor ...

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();

(Üzgünüm, 512-bit hash için sabit :)

Ben sadece PHP'nin Crypt fonksiyonu maç için. NET karma işlevi almaya çalışırken birkaç saat geçirdim. Eğlenceli değil.

Crypt PHP uygulama bir base64 kodlanmış dize döndürür, ve (örneğin, 5000 Crypt için varsayılan değerdir.) Ben birkaç kütüphaneleri kullanarak. NET benzer çıktılar elde etmek mümkün değildi birden fazla karma tekrarlamalar yapmaz beri birden fazla zorluklar var burada, Ben CryptSharp bulana kadar. PHP (veya orijinal C) işlevine benzer bir tuz kabul (örneğin "$6$round=5000$mysalt"). Hiçbir firar $ olduğunu ve bir tuz vermeyin eğer rasgele bir autogenerate olacağını unutmayın.

You can find CryptSharp here: http://www.zer7.com/software.php?page=cryptsharp

Good background reading: - http://www.akkadia.org/drepper/SHA-crypt.txt