2010-02-03 60 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