Quindi, ho un sito Web che legge/verifica (e scrive) gli hash delle password dal database, e ho qualcosa che rende gli hash di password stile SHA-512 per quello, quelli che assomiglia a:Creazione di hasc di stile glibc 2.7 Sha-512 hash in Perl
$6$GloHensinmyampOc$AxvlkxxXk36oDOyu8phBzbCfLn8hyWgoYNEuqNS.3dHf4JJrwlYCqha/g6pA7HJ1WwsADjWU4Qz8MfSWM2w6F.
Il sito Web è basato su Java, quindi ho scritto un hash SHA-512 per esso. Il problema è che ci sono un sacco di lavori di cron perl che eseguono che anche devono verificare gli hash delle password occasionalmente nel database, e poiché quelli girano su una scatola di Solaris, la cripta non supporta il formato $ 6 $.
Così, quando lo faccio:
printf("crypt => '%s'\n",crypt("Hello",'$1$CygnieHyitJoconf$'));
torno sensibilmente:
crypt => '$1$CygnieHy$n9MlDleP0qmGCfpbnVYy11'
considerando che, se faccio
printf("crypt => '%s'\n",crypt("Hello",'$6$CygnieHyitJoconf$'));
ottengo un inutile
crypt => ''
C'è un modo per ottenere gli hash delle password SHA-512 in Perl su una casella che non usa glibc? (Questo è quello che viene detto quando faccio una ricerca per lo più ("uso crypt").
mi piacerebbe molto preferisco non re-implementare SHA-512 hash delle password in perl.
Grazie!
Non è tanto un algoritmo personalizzato quanto un diverso algoritmo. È sha512crypt. SHA512 è progettato per essere FAST, che è l'opposto di quello che si desidera per una funzione di hashing della password. Segue lo standard crypt (3) insieme a bcrypt e supporta la complessità variabile (un numero variabile di "round" per renderlo più forte in futuro quando i 5000 round predefiniti non sono più sufficienti). crypt (3) è sempre ciò che dovresti usare per l'hashing della password. nient'altro, mai. –