2010-02-03 11 views
13

Ich muss eine Zeichenfolge (aus einem Textbereich) verschlüsseln, die später auch entschlüsselt wird, wenn es angezeigt wird.ruby ​​- wie man Text verschlüsselt

Ich bin nicht besorgt darüber, dass es weitgehend sicher ist, aber nur nicht die Daten im Nur-Text-Format speichern möchten.

Hat jemand irgendwelche Vorschläge, wie man das einfach in Rails macht?

Antwort

-26

Wenn Sie sich über die Sicherheit nicht betroffen sind, können Sie nur Base64-kodiert Ihre string:

encoded = Base64::encode(string) 
decoded = Base64::decode(encoded) 

Im Übrigen ist es auch geeignet für binäre Daten codiert.

Dies ist nicht wirklich Verschlüsselung als jeder Entwickler kann sogar erraten, dass seine Base64-codierten Daten.

+21

-1 Verschlüsselung ist keine Verschlüsselung. – Shyam

+1

Obwohl Sie Sicherheit erwähnen, könnte ein zufälliger Scan von einem eiligen Entwickler dazu führen, dass sie das vergessen. Da die Frage war zu verschlüsseln diese Antwort ist in der Tat falsch –

+7

Ich fühle mich wie @neutrino wird ein bisschen eine harte Zeit hier gegeben. Die Kommentatoren haben recht, aber er hat seine Antwort mit "wenn Sie nicht um Sicherheit besorgt sind" vorgetragen. Ich denke, jeder reagiert nur zu sehr auf die Tatsache, dass es als "korrekt" gewählt wurde, und Entwickler, die den Unterschied zwischen Verschlüsselung und Verschlüsselung verstehen, sind besorgt, dass jemand, der auf diesen Thread stolpert, die "richtige" Antwort verwendet. Ich wünschte wirklich, ich könnte die Antwort bearbeiten, und das würde alle Probleme lösen. – hrdwdmrbl

14

Gibt es eine ROT13-Implementierung in Ruby/Rails (da muss es sein ...), die außer für menschliche Leser (und Idiot-Savants) völlig unsicher ist, so passt es zu Ihrem Anwendungsfall.

EDIT - Dies ist ein guter Start für Zeichen Auslagern:

$_.tr! "A-Za-z", "N-ZA-Mn-za-m"; 

Es eingabe Benutzer fragt, dann tauscht die Zeichen.

BEARBEITEN Wenn Sie nicht vertraut sind, weist ROT13 jedem Buchstaben seine natürliche Zahl zu. A = 1, B = 2, usw. Dann fügt es jeder Zahl 13 hinzu und wirbelt es auf halbem Weg um das Alphabet herum. Das halbe Bit ist großartig, denn im Gegensatz zu ROT12 können Sie ROT13 einfach erneut zum Decodieren ausführen. Eine Funktion für beide. ODER könnte man ROT12 13 mal laufen lassen (12 * 13 = 156. 156/26 = 6). ROT 13 ist dafür aber besser.

+17

Man denke nur nicht, dass doppelt ROT13 sicherer ist wie double-RSA sein könnte. – tadman

20

Es gibt ein RubyGem namens Crypt, das eine reine Ruby-Implementierung einer Reihe von Verschlüsselungsalgorithmen bietet.

+0

Das Beispiel auf ihrer Website gab mir einen Fehler, ging stattdessen für Verschlüsseler! –

+1

Crypt wird nicht unter 1.9.1 oder größer unterstützt - zumindest im Moment – pduersteler

16
gem install encryptor 

Es enthält die standardmäßige Ruby OpenSSL-Bibliothek und ermöglicht die Verwendung beliebiger Algorithmen.

http://github.com/shuber/encryptor

Verwandte Themen