algorithm - 简单整数加密

标签 algorithm language-agnostic cryptography

有没有简单的算法来加密整数?也就是说,函数 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/

相关文章:

algorithm - 如何对任意长度的数字进行平方根和幂运算?

.net - key 容器,足够安全以存储私钥?

c - 记录全局变量是否已被读取或写入

查找字符串 A 需要声明多少次才能包含字符串 B 作为子字符串的算法

python-3.x - 给定网格点找到相应的矩形坐标

ssl - 有运行 x509 key 服务器的标准方法吗?

javascript - eccrypto.getPublic() 不适用于 "custom"私钥

algorithm - 无法理解彼得森算法的正确性

algorithm - Strassen 的算法证明

algorithm - 填充体积算法