Karma algoritmaların kendileri bayt üzerinde çalışırlar, bu yüzden Mark'ın yorumladığı gibi unicode güvenlidirler. Tek sorun, PHP'nin unicode dizeleriyle ilgilenmesi, yani binary-safe parola düzeltme işlevleri midir? Bunu test ve öğrenelim:
<?php
$pass = 0;
$fail = 0;
# Generate 100 random unicode passwords
for ($i = 0; $i < 100; $i++) {
$password = '';
for ($p = 0; $p < 10; $p++) {
$password .= mt_rand(0xa1, 0xffff);
}
# Test password hashing
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash)) {
$pass++;
} else {
$fail++;
}
}
echo "Pass: $pass\nFail: $fail\n";
Sonuç: sorunuzun
Pass: 100
Fail: 0
cevap evet, bu güvenli olmasıdır.
Karmaşık karakterler, karakterlere karşı değil, baytlara karşı çalışır; Çok güvenli ve uyumsuzluk sorunları –
@MarkBaker çok teşekkür ederim. – user5115459
@MarkBaker, yorumunuzu o zaman bir yanıt haline getirebilir. – domsson