有没有简单的算法来加密整数?也就是说,函数 E(i,k) 接受一个 n 位整数和一个(任何类型的) key 并生成另一个不相关的 n 位整数,当将其输入第二个函数 D(E(i) 时, k) (连同 key )产生原始整数?
显然,您可以执行一些简单的可逆操作,但它们似乎都会产生明显相关的输出(例如,连续输入导致连续输出)。当然,也有密码学上强大的标准算法,但它们不会产生足够小的输出(例如 32 位)。我知道任何 32 位密码都可以被暴力破解,但我不是在寻找密码强度高的东西,只是看起来随机的东西。理论上应该是可以的;毕竟,我可以通过随机配对每个整数来创建字典。但我希望内存占用少一些。
编辑:感谢您的回答。简单的 XOR 解决方案将不起作用,因为相似的输入会产生相似的输出。
最佳答案
这不等于 Block Cipher block 大小 = 32 位 ?
不太流行,因为它很容易坏。但理论上可行。 这是 Perl 中的一种实现: http://metacpan.org/pod/Crypt::Skip32
更新:另见 Format preserving encryption
更新 2:RC5 block 大小支持 32-64-128 位
关于algorithm - 简单整数加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769539/