ASP.NET MVC bir PHP web sitesi yeniden yazıyorum. Ben aynı kullanıcı tabanını korumak istiyorum ama şifreleri PHP crypt () fonksiyonu kullanılarak karma vardır. Ben giriş bir şifre karma ve kullanıcı veritabanı karma parola karşı kontrol edebilirsiniz böylece ben. Net aynı işlevi gerekir.
Bu durumda crypt CRYPT_MD5 uygulamasını kullanıyor - sağlamalarının tüm $ 1 $ ile başlar
Ben Phalanger denedim ama crypt fonksiyonunun bir MD5 uygulaması yoktur.
Herkes. Net biri biliyor mu? CodeProject ilgili crypt () C # örnek DES, değil MD5 kullanır.
Ben tuz + şifre, parola + ile tuz ve tuz farklı permütasyon ve $ 1 $ $ önek ve sonek olmadan, C # aşağıdaki kodu denedim. Yok PHP aynı sonucu verir:
static void Main(string[] args)
{
const string salt = "somesalt";
const string password = "fubar";
const string plaintextString = password + salt;
byte[] plaintext = GetBytes(plaintextString);
var md5 = MD5.Create("MD5");
byte[] hash = md5.ComputeHash(plaintext);
string s = System.Convert.ToBase64String(hash);
Console.WriteLine("Hash of " + password + " is " + s);
Console.ReadKey();
}
private static byte[] GetBytes(string s)
{
var result = new byte[s.Length];
for (int i = 0; i < s.Length; i++)
result[i] = (byte)s[i];
return result;
}