【发布时间】:2011-05-01 01:11:38
【问题描述】:
我需要一些关于如何将一个 int 加密为另一个 int 的指针或实际示例,并且需要一个密钥来解密该值。
类似:
encrypt(1, "secret key") == 67123571122
decrypt(67123571122, "secret key") == 1
这个人问了几乎相同的问题:Symmetric Bijective Algorithm for Integers
但是我是一个完全加密的“n00b”我想要一些更实际的例子,如果可能的话,在 python 中。
我知道我需要使用某种分组密码,但我对保持加密结果仍然是数字且有点短(可能是长而不是 int)感到很迷茫
有什么建议吗?谢谢
更新-
我为什么要这样做?
我有一个网络服务,其中每个“对象”都有一个 URL,例如:
example.com/thing/123456/
现在,这些 ID 是连续的。我想隐藏它们是顺序的(数据库 ID)这一事实。
这些页面上的内容不是“最高机密”或类似的东西,但是对于某人来说,窥探其他一些随机对象并不像在 URL 中增加该 ID 那样容易。
因此,使用某种双向数字加密,URL ID 根本不会是连续的,并且需要花费相当多的时间才能找到更多这样的对象。 (此外,请求会受到限制)
我想保留这个数字而不是任意字符串的唯一原因是这样更改是完全的直接替换,并且无需任何其他代码更改就可以正常工作。
另外,我不能只生成新的随机数据库 ID。我必须在应用程序中处理这个加密/解密。
【问题讨论】:
-
你为什么要这样做?目标是什么?创建自己的密码学是非常危险的。即使像“只使用密码 X”这样看似简单的事情也会产生意想不到的安全后果。
-
好点。我更新了问题
标签: python security encryption cryptography obfuscation