我需要的是一个 可逆 函数,该函数将一个 长 整数(64位整数)转换为另一个 长 整数,这种方式对用户来说似乎是“随机的”(但实际上是确定性的),以便将3个后续数字转换为3个数字彼此完全不同。
做到这一点很容易而又不可逆,但是在这部分上却很难。
基本上,这是与可逆哈希函数相同的问题吗?,但我需要超过2 ^ 32个不同的值。
有任何想法吗?
PS:我要用Java编写它,但是问题本身是很普通的。
这些是块密码的基本要求,通常使用Feistel结构实现:https : //en.wikipedia.org/wiki/Feistel_cipher