2016-08-29 7 views
6

मैं हैरिंग पासवर्ड के लिए लैरवेल के bcrypt फ़ंक्शन का उपयोग कर रहा हूं। जब मैं करते हैं,लैरवेल 5: उसी स्ट्रिंग पर bcrypt का उपयोग करके अलग-अलग मान

bcrypt('secret') 

मैं

=> "$2y$10$mnPgYt2xm9pxb/c2I.SH.uuhgrOj4WajDQTJYssUbTjmPOcgQybcu" 

मिल लेकिन अगर मैं इसे फिर से चलाने, मैं

=> "$2y$10$J8h.Xmf6muivJ4bDweUlcu/BaNzI2wlBiAcop30PbPoKa0kDaf9xi" 

और इतने पर ... मिल

तो, जीता ' यदि मैं हर बार अलग-अलग मान प्राप्त करता हूं तो पासवर्ड मिलान प्रक्रिया विफल हो जाती है?

उत्तर

14

इस प्रकार bcrypt काम करना चाहिए। wikipidea देखें।

बीक्रिप्ट हैशिंग के दौरान यादृच्छिक 128-बिट नमक उत्पन्न करता है। यह नमक हैश का हिस्सा बन जाता है, इसलिए हम हमेशा एक ही इनपुट स्ट्रिंग के लिए एक अलग हैश मान प्राप्त करते हैं। यादृच्छिक नमक वास्तव में ब्रूट-फोर्स हमलों को रोकने के लिए उपयोग किया जाता है।

पासवर्ड मिलान प्रक्रिया हैश के विभिन्न मानों के कारण विफल नहीं होगी। tinker

$hash1 = bcrypt('secret') 
$hash2 = bcrypt('secret') 

Hash::check('secret', $hash1) 
Hash::check('secret', $hash2) 

में निम्नलिखित आप दोनों Hash::check के मामलों में true मिलना चाहिए की कोशिश करो।

तो यदि हैश मान अलग हैं, तो पासवर्ड मिलान विफल नहीं होगा।

+0

इसके अलावा http://stackoverflow.com/questions/29518652/laravel-5-encryption-different-values-for-same-string-given – linuxartisan

+0

जैसा कि मैं चलाता हूं लेकिन दोनों ** ** झूठे ** में हैं 'laravel5.3' –

+0

मुझे यह 'हैश :: चेक (' गुप्त ', $ हैश 1) जैसा होना चाहिए' http://stackoverflow.com/questions/21495502/laravel-hashcheck-allways-return-false पर देखें –

संबंधित मुद्दे