संपादित करें: ठीक है तो मैं कुछ हद तक एक जवाब यहाँ मिल गया है BCrypt says long, similar passwords are equivalent - problem with me, the gem, or the field of cryptography?jBCrypt गंभीर मुद्दा (सच लौटने जब यह नहीं करना चाहिए?)
नए सवाल हालांकि, कैसे किसी को hashing अगर आपके पास के लिए bCrypt का उपयोग कर सिफारिश कर सकते हैं किसी ऐसे दुनिया में उपयोगकर्ता की पासवर्ड लंबाई को सीमित करने के लिए जहां हम उपयोगकर्ताओं को तेजी से जटिल पासवर्ड चुनने के लिए शिक्षित करने की कोशिश कर रहे हैं, यहां तक कि पासफ्रेज भी कह रहे हैं कि आपका पासवर्ड एन अक्षरों से छोटा होना चाहिए, शुक्रवार के स्क्रीनशॉट में thedailywtf.com में समाप्त होने का तरीका लगता है :)
नीचे मूल प्रश्न:
मैं एक पुराना लॉगिन दोबारा कर रहा हूं एक आवेदन के लिए पृष्ठ और जावा कार्यान्वयन jBCrypt (http://www.mindrot.org/projects/jBCrypt/) का उपयोग करके एक घुड़सवार bcrypt देने का फैसला किया और एक प्रमुख शो स्टॉपर में भाग गया।
समस्या चेकप विधि के साथ है जो हमेशा एक बहुत लंबे बीज का उपयोग करते समय सच होने लगती है। मैं {InternalSalt} {username} {password} के साथ उपयोगकर्ता का पासवर्ड नमक करने जा रहा था और फिर हैश कि bCrypt के साथ।
तो मेरे पास निम्न कोड है (इसे चेकप को अलग करने के लिए जितना संभव हो उतना नीचे छीन लिया गया है)।
public class Test {
public static void main(String[] args) {
String plaintext = "jw~ct/f61y1m7q458GiLVQpiqDK|8kG=d368Id:[email protected]$^_80I{qrn1HM6423{FtestAccountO1nu3jKN";
String pw_hash = BCrypt.hashpw(plaintext, BCrypt.gensalt());
if (BCrypt.checkpw("jw~ct/f61y1m7q458GiLVQpiqDK|8kG=d368Id:[email protected]$^_80I{qrn1HM6423{FtestAccountO1nu3jKN", pw_hash))
System.out.println("It matches");
else
System.out.println("It does not match");
}
}
हो जाएगा ताकि, के रूप में यह होना चाहिए, प्रिंट "यह मेल खाता है"। डी @ $^_ 80i: 8 किलो = d368Id |
समस्या मैं कर रहा हूँ कहना है कि आप कहते हैं जोड़ने aaa पासवर्ड के लिए आप कर यह
BCrypt.checkpw ("जेडब्ल्यू ~ सीटी/f61y1m7q458GiLVQpiqDK checkpw के पास है {qrn1HM6423 {FtestAccountO1nu3jKNaaa ", pw_hash)
यह अभी भी सच है! बिल्कुल वही नहीं जो मैं उम्मीद कर रहा था। मुझे डॉक्टर में कोई पासवर्ड लंबाई सीमा दिखाई नहीं दे रही है, लेकिन मैं इसे छोटे पासवर्ड के बीज के साथ पुन: उत्पन्न नहीं कर सकता, ऐसा लगता है कि अगर मैं स्ट्रिंग के अंत से कुछ और संशोधित करता हूं तो यह झूठी वापसी की अपेक्षा करता है।
क्या मुझे कुछ प्रमुख याद आया? मुझे पता है कि इन फोरम पर जेबीक्रिप्ट का उपयोग करने वाला मुझे अकेला नहीं होना चाहिए क्योंकि मैंने कुछ शोध करते समय बीसीआरपीटी को कई पदों में अनुशंसित देखा है।
संपादित करें: विंडोज 7 64 बिट्स - जावा (टीएम) एसई रनटाइम वातावरण (निर्माण 1.6.0_24-B07)