2015-07-20 15 views

risposta

3

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.