Portál AbcLinuxu, 6. května 2025 11:21
sha1(md5(heslo))
. A jak vidím, není to jednoznačný požadavek. V seznamu API je i něco jako salt
. MD5 a salt? Hm? To přece nebylo navrženo se solí, ne?
A dostávám se k následujícímu. První pokus (a mnohé další) v Pythonu byly něco jako:
import hashlib import crypt md5_pass = crypt.crypt(PSW, crypt.METHOD_MD5) secret_password = hashlib.sha1(md5_pass.encode('utf-8')).hexdigest()což nevrátilo správný řetězec. Ten byl vrácen správně právě až při použití soli, a to za pomoci externí knihovny (jíž jsem musel najít na internetu,
passlib
):
import hashlib from passlib.hash import md5_crypt md5_pass = md5_crypt.hash(PSW, salt=salt) secret_password = hashlib.sha1(md5_pass.encode('utf-8')).hexdigest()Toto je už OK výsledek. Obé MD5 stringy se liší. Může mi někdo vysvětlit, kde je zakopaný pes?
Řešení dotazu:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.