我需要一些指针或实例来说明如何将int加密到另一个int,并且需要一个密钥来解密该值。对称整数到整数加密
喜欢的东西:
encrypt(1, "secret key") == 67123571122
decrypt(67123571122, "secret key") == 1
这家伙问几乎同样的问题:Symmetric Bijective Algorithm for Integers
但是我是一个总的加密“的n00b”如果可能的话,我想一些实际的例子,在蟒蛇。
我明白我需要使用某种类型的分组密码,但我敢失去了部分关于保持加密的结果仍然是数字的,有点短(可能是长期的,而不是一个int)
任何指针?谢谢
更新- 为什么我要这样做?
我有一个Web服务,其中每个“对象”获得一个网址,例如: example.com/thing/123456/
眼下,这些ID是连续的。我想隐藏它们是连续的(数据库ID)的事实。
的东西在这些网页是不是“最高机密”或类似的东西,但它不应该那么容易有人在其他一些随机”对象窥探刚刚递增该ID在URL中。
因此,通过某种双向数字加密,URL ID将不会是连续的,而且需要相当多的时间才能找到更多这些对象。 (此外,请求被扼杀)
而我想保留这个数字而不是一个任意字符串的唯一原因是,这样的变化是一个总的嵌入式替换,并且事情只会在没有任何其他代码更改的情况下工作。
此外,我不能只生成新的随机数据库ID。我必须在应用程序中处理这种加密/解密。
你为什么这样做?目标是什么?创建自己的密码非常危险。即使看似简单的事情,比如“只使用密码X”,也会产生意想不到的安全后果。 – 2010-10-27 00:13:34
好点。我更新的问题 – adamJLev 2010-10-27 00:32:55
[格式保留加密(http://en.wikipedia.org/wiki/Format-preserving_encryption) – 2010-10-27 01:05:21