के SHA1-function से भिन्न परिणाम देता है मेरे पास उपयोगकर्ता नाम और पासवर्ड के साथ एक SQL तालिका है। पासवर्ड MessageDigest की पाचन() विधि का उपयोग करके एन्कोड किए गए हैं। अगर मैं पासवर्ड एन्कोड करता हूं - मान लें कि "abcdef12" - MessageDigest की digest() विधि के साथ और फिर इसे हेक्साडेसिमल मानों में परिवर्तित करें, तो स्ट्रिंग अलग है यदि मैं PHP की SHA1-विधि का उपयोग कर ऐसा करता हूं। मैं उम्मीद करता हूं कि ये मान बिल्कुल वही हों।जावा का संदेशडिगस्ट SHA1-एल्गोरिदम php
कोड कि पासवर्ड एन्कोड करने के लिए प्रयोग किया जाता है:
public static String convertStringToHex(String str) {
char[] chars = str.toCharArray();
StringBuffer hex = new StringBuffer();
for (int i = 0; i < chars.length; i++) {
hex.append(Integer.toHexString((int) chars[i]));
}
return hex.toString();
}
पासवर्ड:: abcdef12
यहाँ
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] passbyte;
passbyte = "abcdef12".getBytes("UTF-8");
passbyte = md.digest(passbyte);
हेक्साडेसिमल में स्ट्रिंग के रूपांतरण इस पद्धति का उपयोग किया जाता है बहुत सारे SHA1-हैश ऑनलाइन जनरेटर और PHP SHA1() - फ़ंक्शन: d253e3b द्वारा लौटाए गए पासवर्ड
d69ce1e7ce6074345fd5faa1a3c2e89ef यहाँ पासवर्ड के रूप में MessageDigest द्वारा इनकोडिंग है: d253e3bd69ce1e7ce674345fd5faa1a3c2e2030ef
मैं कुछ भूल रहा हूं?
इगोर।
संपादित करें: मुझे किसी को भी इसी तरह की समस्या मिली है: C# SHA-1 vs. PHP SHA-1...Different Results?। समाधान एन्कोडिंग को बदलना था .. लेकिन मैं सर्वर-साइड पर एन्कोडिंग नहीं बदल सकता क्योंकि SQL सर्वर में पासवर्ड मेरे एप्लिकेशन द्वारा नहीं बनाए गए हैं। मैं एक जावास्क्रिप्ट SHA1-class (अधिक सटीक: एक Google वेब टूलकिट-क्लास) का उपयोग कर क्लाइंट-साइड SHA1-एन्कोडिंग का उपयोग करता हूं। यह काम करता है और उम्मीद के रूप में स्ट्रिंग encodes, लेकिन जाहिरा तौर ASCII वर्ण का उपयोग कर ..
धन्यवाद! आपके जवाब ने मेरी समस्या हल की। मैं बाइट-सरणी को हेक्साडेसिमल स्ट्रिंग में ठीक से परिवर्तित करने में विफल रहा था! मैंने @stivlo से विधि का उपयोग किया और यह बहुत अच्छा काम किया! मैं इस प्रतिक्रिया को सही के रूप में चिह्नित करने जा रहा हूं, हालांकि इस मामले में मैं चाहता हूं कि मैं दोनों प्रतिक्रियाओं को सही के रूप में चिह्नित कर सकूं! आप दोनों को धन्यवाद! – Igor