2010-02-03 46 views
13

我需要加密一個字符串(從文本區域),這些字符串在顯示時也會被解密。紅寶石 - 如何加密文本

我不關心它是否非常安全,但不想以純文本格式存儲數據。

有沒有人有任何建議如何在Rails中輕鬆做到這一點?

回答

-26

如果你不擔心安全問題,你可以只基於64位編碼,你的字符串:

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

順便提一下它也適用於編碼的二進制數據。

因爲任何開發人員甚至可能會猜測它的Base64編碼數據,所以這不是真正的加密

+21

-1編碼不是加密。 – Shyam 2010-05-01 21:27:09

+1

雖然您提到安全性,但急躁的開發人員隨便掃描可能會導致他們忘記這一點。由於這個問題是關於加密這個答案實際上是不正確的 – 2012-05-15 16:47:24

+7

我覺得@neutrino在這裏有點難受。評論者是正確的,但他在「如果你不關心安全」的前提下做了迴應。我認爲每個人都對它被選爲「正確」的事實反應過度,並且瞭解編碼和加密之間區別的開發者擔心有人在這個線程中發現了一個「正確的」答案。 我真的希望我可以編輯答案,這將解決每個人的問題。 – hrdwdmrbl 2013-05-26 02:13:44

14

是否有Ruby/Rails(必須有......)的ROT13實現,除了對人類讀者(和白癡自由軟件)完全不安全,所以似乎適合您的用例。

編輯 - 這是換出字符一個良好的開端:

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

它要求用戶輸入,然後交換角色。

編輯如果您不熟悉,ROT13會爲每個字母指定其自然數。 A = 1,B = 2等。然後它將每個數字加上13,有效地在字母表中間旋轉一半。中途位非常棒,因爲與ROT12不同,您可以再次運行ROT13進行解碼。兩者都有一個功能。 你可以運行ROT12 13次我猜(12 * 13 = 156。156/26 = 6)。儘管如此,ROT 13更好。

+17

只是不認爲雙ROT13更安全像雙RSA可能。 – tadman 2010-02-03 15:41:06

20

有一個名爲Crypt的RubyGem,它提供了許多加密算法的純Ruby實現。

+0

他們的網站上的例子給我一個錯誤,而不是加密器! – 2013-01-01 22:55:40

+1

1.9.1或更高版本不支持Crypt - 至少在此刻 – pduersteler 2013-09-30 11:06:08