मैं एएसपी.नेट एमवीसी में एक PHP वेब साइट को फिर से लिख रहा हूं। मैं एक ही उपयोगकर्ता आधार को बनाए रखना चाहता हूं लेकिन PHP क्रिप्ट() फ़ंक्शन का उपयोग करके पासवर्ड धोए गए हैं। मुझे .NET में एक ही फ़ंक्शन की आवश्यकता है ताकि मैं लॉगिन पर पासवर्ड रख सकूं और उपयोगकर्ता डेटाबेस में हैश किए गए पासवर्ड के विरुद्ध जांच सकूं। इस मामले मेंPHP क्रिप्ट() फ़ंक्शन .Net में?
तहखाने CRYPT_MD5 कार्यान्वयन उपयोग कर रहा है - हैश सभी $ 1 $
मैं आस्ट्रेलिया का एक पक्षी की कोशिश की है के साथ शुरू लेकिन यह तहखाने समारोह के MD5 कार्यान्वयन नहीं है।
क्या किसी को भी नेट में पता है? कोडप्रोजेक्ट पर क्रिप्ट() का सी # उदाहरण डीईएस का उपयोग करता है, एमडी 5 नहीं।
मैंने सी # में निम्नलिखित कोड का प्रयास किया है, नमक + पासवर्ड, पासवर्ड + नमक और नमक के अलग-अलग क्रमशः $ 1 $ उपसर्ग और $ प्रत्यय के बिना। कोई भी पीएचपी के रूप में एक ही परिणाम देता है:
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;
}
MD5 यह रिटर्न एक सुरक्षित हैश नहीं माना जाता है कॉल करने के लिए था और आप करने के लिए अपने सिस्टम का उन्नयन करना चाह सकते हैं SHA-256। – TravisO
बीटीडब्ल्यू, 'कंसोल।WriteLine ("{0} का हैश {1}" है, पासवर्ड, एस); ' – abatishchev
अबतिशचेव, यह जांचने के लिए एक त्वरित स्पाइक था कि क्या मैं एक दिए गए इनपुट स्ट्रिंग के लिए PHP के रूप में एक ही हैश उत्पन्न कर सकता हूं। आपकी टिप्पणी पूरी तरह से ऑफ-विषय और सहायक से कम है। –