Manuel girişi göre, ben 16 karakter dizisinin başlangıcı olarak, '$ 2 $' veya '$ 2a $' kullanmalısınız. Modeli uygun Ben sağlamak olursa olsun dize dilimlenmiş olacağını bana gösterir '$2a$07$usesomesillystringforsalt$
', ve doğranmış: Ancak, daha sonra verilen örnekte, onlar çok daha uzun bir dize kullanabilirsiniz.
Ben karşılaşmamdır sorun aslında STD_DES
vs Blowfish algo tetikliyor. Örnek:
$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $26HdMTpoODt6
Bu karma girdap belli değildir ve STD_DES
tuz için kullanılan tuzun sadece ilk iki karakter ile aslında. Ancak, PHP Manual adlı örnekte, onların tuz '$2a$07$
' ile başlar, bu yüzden aynı kod bu üç karakterleri eklerseniz ben şu olsun:
$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $2a$07$b1b2ee48991281a439da2OHi1vZF8Z2zIA.8njYZKR.9iBehxLoIC
Ben 04$
ve 15$
iş hem de örneğin, burada 07$
'olarak gösterilen karakter bazı değişimini sağlayabilir ettim, ama {[ettik (3)]} {aracılığıyla [(4)]} (boş bir dize oluşturur) işe yaramazsa, ve {[böyle 99$
ve 85$
gibi değerler dönmek için neden (7)]} tekrar.
The Question:
Ben manuel olarak inanmak kurşun olduğum gibi, Blowfish yöntemi kullanmak için crypt fonksiyonu talimat, '$2a$
' dizisini izleyen bu üç karakter önemi nedir.
Kılavuzuna göre, '$2a$
' crypt()
Balon balığı yöntemi kullanmak için talimat için yeterli olmalıdır; ne, daha sonra, aşağıdaki üç karakter önemi nedir? Sonra, ne bu üç karakter kadar önemli ise, bir tuz için doğru biçimi nedir?