Hashing in SHA512 mit einem Salz? - Python
Bin ich auf der Suche durch ths hashlib Dokumentation, aber habe nicht gefunden was reden mit Salz wenn hashing Daten.
Hilfe wäre toll.
InformationsquelleAutor der Frage RadiantHex | 2010-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Samir s Antwort ist korrekt, aber etwas kryptisch. Im Grunde, das Salz ist nur ein willkürlich abgeleitet bit der Daten, die Sie Präfix oder postfix Ihre Daten mit, um drastisch erhöhen die Komplexität der dictionary-Angriff auf Ihr Hash-Wert. So ein Salz
s
und Datend
würden Sie nur das folgende tun, um erzeugen ein salted hash der Daten:Sehen diese wikipedia-Artikel für mehr details
InformationsquelleAutor der Antwort Rakis
Fügen Sie das Salz, um Ihre sensiblen Daten:
InformationsquelleAutor der Antwort Jason Leveille
Salzen ist nicht ein Magischer Vorgang, muss die Bibliothek, um zu helfen Sie mit—es ist nur zusätzliche Daten zur Verfügung gestellt zu stoppen rainbow-Tabellen arbeiten.
InformationsquelleAutor der Antwort Samir Talwar
Wenn Sie auf der Suche nach einem Ersatz für crypt(), neuere glibc-Versionen haben SHA-512-basierten "$6$" mit einer Variablen iterationsanzahl (siehe Ulrich Drepper ' s Seitedie eine Beschreibung und links zu einem vollständigen C-Implementierung von
sha512_crypt_r()
).Schreiben Sie Ihre eigenen Krypto ist sehr ratsam — die oben
sha512(salt+password)
hilft nicht gegen eine brute-force-Angriff.Für die Erzeugung von Salz, verwenden Sie so etwas wie
os.urandom(16)
für zufällige bytes oder''.join(map(lambda x:'./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'[ord(x)%64], os.urandom(16)))
für zufällige base64-alike-chars (für die Verwendung mit crypt()-alikes).(Ich sage base64-alike-es ist nicht der gleiche wie der im PEM-Base64/MIME.)
InformationsquelleAutor der Antwort tc.
verwenden passlib, schreiben Sie Ihre eigenen Passwort-crypto ist ein fast sicherer Weg zum scheitern.
InformationsquelleAutor der Antwort Thomas Waldmann
SHA512 ist kein guter Weg, zu speichern, Hash-Passwörter in diesen Tagen. Sie sollten mit bcrypt oder etwas ähnliches. Was wichtig ist, dass das Salzen integriert ist, und dass der Algorithmus hat eine bedeutende Arbeit Faktor.
Wenn Sie Salz zu Ihrem SHA512-Passwörter, indem Sie einfach Anhängen (oder voranstellen) das Salz der Klartext, wer bekommt Ihre Hände auf eine Reihe von Ihre Hash-Passwörter und wendet eine moderne cracking-tool (http://arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/) zu sehen sein wird das verkettete Kennwort+salt Werte und wird sich wahrscheinlich durch triviales pattern-matching, in der Lage sein zu trennen, das Passwort Teil von den Salz-Anteil für die meisten, wenn nicht alle Konten in Frage stellen.
Ich habe nicht gedacht, dass diese durch den ganzen Weg, und ich bin keineswegs ein security-Experte, aber es scheint mir, dass, wenn Sie wurden zu verschlüsseln (z.B. AES-256), wird das Passwort mit dem salt als Schlüssel, und dann hash dass mit SHA512, Sie wären sicher vor der Sicherheitsanfälligkeit, die ich oben beschrieben habe.
Jedoch, an diesem Punkt, Sie haben mehr Aufwand, als es genommen hätte, um Schalter zu bcrypt und Sie würde immer noch nicht den Schutz eines Faktor Arbeit, also würde ich nur empfehlen, ein Ansatz wie, wenn die Umgebung in der Sie arbeiten, bietet diese Möglichkeit nicht.
InformationsquelleAutor der Antwort JakeRobb