PHPFunzioni di hashing della password


introduzione

Poiché i servizi web più sicuri evitano di archiviare le password in formato di testo normale, le lingue come PHP offrono varie (non decodificabili) funzioni hash per supportare lo standard industriale più sicuro. Questo argomento fornisce documentazione per l'hashing corretto con PHP.

Sintassi

  • string password_hash ( string $password , integer $algo [, array $options ] )
  • boolean password_verify ( string $password , string $hash )
  • boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )
  • array password_get_info ( string $hash )

Osservazioni

Prima di PHP 5.5, è possibile utilizzare il pacchetto di compatibilità per fornire le funzioni password_* . Si consiglia vivamente di utilizzare il pacchetto di compatibilità se si è in grado di farlo.

Con o senza il pacchetto di compatibilità, la corretta funzionalità di Bcrypt tramite crypt() si basa su PHP 5.3.7+ altrimenti è necessario limitare le password ai set di caratteri solo ASCII.

Nota: se usi PHP 5.5 o versioni precedenti stai utilizzando una versione di PHP non supportata che non riceve più alcun aggiornamento di sicurezza. Aggiorna il prima possibile, puoi aggiornare gli hash delle password in seguito.

Selezione dell'algoritmo

Algoritmi sicuri

Algoritmi insicuri

I seguenti algoritmi di hashing non sono sicuri o non sono adatti allo scopo e pertanto non dovrebbero essere utilizzati . Non sono mai stati adatti per l'hashing della password, in quanto sono progettati per diger veloci invece che per gli hash delle password con forza bruta e lenta.

Se ne usi qualcuno , incluso anche sali, dovresti passare ad uno degli algoritmi sicuri raccomandati il prima possibile .

Algoritmi considerati insicuri:

Alcuni algoritmi possono essere tranquillamente utilizzati come algoritmo di digest del messaggio per dimostrare l'autenticità, ma mai come algoritmo di hashing della password :

  • SHA-2
  • SHA-3

Nota: gli hash forti come SHA256 e SHA512 sono ininterrotti e robusti, tuttavia è generalmente più sicuro utilizzare le funzioni di hash bcrypt o argon2 poiché gli attacchi di forza bruta contro questi algoritmi sono molto più difficili per i computer classici.

Funzioni di hashing della password Esempi correlati