Sto cercando di trovare la stringa hash bcrypt usando regex (in PowerGrep), in un database.Espressione regolare per trovare bcrypt hash?
provato questo regex:
{?A-Za-z_0-9.{60}}?
Ma viene trovata una corrispondenza. L'hash di Bcrypt ha una lunghezza di 60 caratteri e inizia con "$ 2y $".
Esempio:
$2y$15$nK/B6u765645/lo0867h56546v/BnH5U5g45Aj67u67nMVtrhryt6
Ho aggiornato la tua espressione regolare per essere un po 'più precisa: '^ \ $ 2 [ayb] \ $ [0-9] {2 } \ $ [A-Za-z0-9 \. \ /] {53} $ '. Questo controlla il valore di costo dopo l'identificatore della versione e perfeziona la classe di caratteri per i bit di hash e di sale. A seconda dell'interprete, potrebbe non essere necessario sfuggire a '/' nella regex. Per il valore di costo, questo semplicemente controlla il formato, non se il valore è valido (i valori validi sono 4-31, inclusi). – Rand
Nel corso del tempo, la lunghezza potrebbe essere superiore a 60 se si esegue la crittografia utilizzando la nuova funzione password_hash di php. Per questo motivo, un'espressione regolare di '^ \ $ 2 [ayb] \ $. + $' Potrebbe essere più appropriata. – GRA0007