Wie kann ich eine Zeichenfolge mit MD5 in Rails 3.0 verschlüsseln? pass = MD5.hexdigest(pass)
in einem Modell ergibt uninitialized constant MyModel::MD5
RoR - MD5 Generation
Antwort
Sie können hierfür Digest::MD5
aus der Ruby-Standardbibliothek verwenden.
irb(main):001:0> require 'digest/md5'
=> true
irb(main):002:0> Digest::MD5.hexdigest('foobar')
=> "3858f62230ac3c915f300c664312c63f"
Und noch etwas: MD5 ist ein Hash-Algorithmus. Sie verschlüsseln nichts mit einem Hashalgorithmus.
'Digest :: MD5.hexdigest ('foobar')' bearbeitet –
Eine weitere Sache: MD5 wurde grundsätzlich (im kryptographischen Sinne) gebrochen und sollte nicht mehr verwendet werden. Wenn Sie ein neues Software-Projekt starten, verwenden Sie einen stärkeren Hashalgorithmus wie SHA512 oder bcrypt und vergessen Sie nicht, Ihren Kennwörtern ein Salz hinzuzufügen, bevor Sie sie hashen. – joschi
MD5 ist für kryptografische Zwecke unterbrochen, kann aber weiterhin zum Vergleichen von Dateien verwendet werden. Git benutzt es immer noch. ABER DON "T HASH PASSWORDS MIT MD5 – AlexQueue
Sie könnten diesen Beitrag lesen, warum die Verwendung von MD5/SHA als Teil Ihres Authentifizierungsschemas eine schlechte Wahl ist: http://codahale.com/how-to-safely-store-a-password/ –
A Punkt der Terminologie: Hashing, mit z der MD5-Algorithmus ist nicht * Verschlüsselung *. Sie verschlüsseln etwas, wenn Sie es auch * entschlüsseln * können möchten. Normalerweise können Sie die ursprüngliche Nachricht nicht aus einem Hashwert ermitteln, und oft ist dies genau der Punkt, an dem ein Hashalgorithmus verwendet wird. – Confusion