Gå til innhold

[Løst] Tips til hashing av passord ved bruk av crypt eller scrypt


Anbefalte innlegg

Hei!

 

Jeg benytter meg av Python 3.5 på min OpenBSD maskin hvor jeg prøver å bruke crypt eller scrypt til hashing av passord. Så langt har jeg mislykkes ved å bruke crypt() modulen, og jeg mistenker at det kan ha noe med C kompilatoren til OpenBSD å gjøre. Har fått en bekjent til å prøve ut samme kodesnutt på en Linux maskin der han faktisk får en generert en gyldig hash.

 

Her har du et eksempel:

>>> import crypt

>>> print(crypt.crypt('test', crypt.mksalt(crypt.METHOD_SHA512)))

None

 

Jeg vet dessverre ikke hvor jeg skal starte for å feilsøke dette. Har derimot prøvd med på andre alternativer, nemlig ved å bruke passlib modulen, men her får jeg bare generert en merkelig hash. Se eksempel under:

>>> from passlib.hash import sha512_crypt

>>> sha512_crypt.hash('test')

'$6$rounds=656000$4AFD.o2kwc95jlqg$QVqu6D4zoMi44jx/q550pkeY8EsH9pt7m0an6sO9LX/H0uCLZYvTi8co3S1eXmZovv0sQOBMZOmFMItYCTInN0'

 

Dette er vel ikke en 128 char gyldig hash, eller?

 

Sist men ikke minst har jeg forsøkt med scrypt og pysodium modulen (https://pypi.python.org/pypi/pysodium). Her får jeg generert en gyldig SHA512 scrypt hash (virker det som), men får dessverre ikke verifisert den grunnet feilmelding. Se eksempel under:

>>> import pysodium

>>> pysodium.crypto_pwhash_scryptsalsa208sha256_str('test', 1, 1)

b'$7$/6.....6...kcDP//eWUi8iTE0Kn7fy3GlKKd5BIl.Ajkuc5km/xR6$r.Vm4KGjuZdgYqnbBWehHCHV6VovQLb6pNcSCWGjeAB'

 

>>> pysodium.crypto_pwhash_scryptsalsa208sha256_str_verify('$7$/6.....6...kcDP//eWUi8iTE0Kn7fy3GlKKd5BIl.Ajkuc5km/xR6$r.Vm4KGjuZdgYqnbBWehHCHV6VovQLb6pNcSCWGjeAB', 'test')

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/local/lib/python3.5/site-packages/pysodium/__init__.py", line 501, in crypto_pwhash_scryptsalsa208sha256_str_verify

    __check(sodium.crypto_pwhash_scryptsalsa208sha256_str_verify(stored, passwd, ctypes.c_ulonglong(len(passwd))))

  File "/usr/local/lib/python3.5/site-packages/pysodium/__init__.py", line 126, in __check

    raise ValueError

ValueError

 

 

Lenke til kommentar
Videoannonse
Annonse

Har funnet et interessant innlegg fra en av OpenBSD-utviklerne, med overskrift "retiring crypt" (http://www.tedunangst.com/flak/post/retiring-crypt).

Jeg tror nok crypt() funksjonen i OpenBSD er deprecated og ikke lenger i bruk. Det kan jo forsåvidt forklare hvorfor jeg ikke får noen resultater i python. Da gjenstår det vel å finne ut av hvorfor ikke jeg får verifisert scrypt hashen.

 

Hva tenker dere?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...