इस तथ्य के कारण कि PHP संस्करण 5.3.7 से पहले ब्लोफिश में कमजोरियां हैं, इसके बजाय SHA-256 या SHA-512 का उपयोग करने का सुझाव दिया जाएगा। उन दोनों में ब्लोफिश के समान नमक प्रारूप है (SHA-256 के लिए $5$ का उपसर्ग और SHA-512 के लिए $6$ का उपयोग करें)। इसके अलावा, इसमें एकाधिक हैशिंग को बाध्य करने के लिए एक वैकल्पिक राउंड पैरामीटर भी शामिल है।
नमक अपने आप में केवल 16 वर्णों में थोड़ा छोटा है, लेकिन ब्लोफिश के विपरीत, यह केवल अल्फ़ान्यूमेरिक वर्णों से अधिक की अनुमति देता है।
उदाहरण
echo 'SHA-256 (no rounds): ' . crypt('password-to-encrypt', '$5$YourSaltyStringz$'); echo 'SHA-512 (with rounds): ' . crypt('password-to-encrypt', '$6$rounds=1000$YourSaltyStringz$');
आउटपुट
यह निम्नलिखित आउटपुट देगा -
SHA-256 (no rounds): $5$YourSaltyStringz$td0INaoVoMPD4kieVrkGE67siKj3N8.HSff8ep0Ybs8SHA-512 (with rounds): $6$rounds=1000$YourSaltyStringz$A5UHscsEbSnPnaV6PmSF5T/MQK.Wc3klA.18c.gXG5pD0PVYSVr/7xwRu1XJyn8XpiMDNRTvpJm5S8DkmSywz1
ब्लोफिश के समान, परिणामी हैश में परिणामी हैश के हिस्से के रूप में नमक होगा।