8
È sicuro usare password_hash
con caratteri unicode come segue o ci sono problemi di incompatibilità?È sicuro utilizzare password_hash con caratteri Unicode?
È sicuro usare password_hash
con caratteri unicode come segue o ci sono problemi di incompatibilità?È sicuro utilizzare password_hash con caratteri Unicode?
Gli algoritmi di hashing funzionano su byte, quindi sono unicode sicuri, come ha commentato Mark. L'unico problema potrebbe essere la gestione di stringhe Unicode da parte di PHP, ovvero le funzioni di hashing della password binary-safe? Testiamo e scoprire:
<?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";
Risultato:
Pass: 100
Fail: 0
La risposta alla tua domanda è sì , è sicuro.
Gli hash funzionano contro byte, non contro caratteri; così perfettamente sicuro e senza problemi di compatibilità –
@MarkBaker grazie mille. – user5115459
@MarkBaker potrebbe trasformare il tuo commento in una risposta. – domsson