gpt4 book ai didi

java - 非密文加密算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:26:13 26 4
gpt4 key购买 nike

类似于非加密的单向哈希(例如,用于构建哈希表),我发现自己需要一种不一定具有加密强度的双向对称 key “加密”功能。我的计划是在数据结构的设计中使用它。

所需的属性是:

  • 实现起来不是特别困难(如果重要的话用 Java 实现)
  • 甚至不需要完全可逆;如果给定明文大小,如果它生成一个小的、预期恒定的可能性,那也没问题。
  • 能够很好地处理小数据(例如,“加密”单个 64 位长数据)
  • 良好的位分散特性(即 XOR-with-random-number 不是最优的,因为序列号最终会共享大部分位)。与输入和输出中设置的位数的关系应该是~随机的。

是否存在这样的算法,或者是否可以将 Java 标准库中的某些东西硬塞进这个角色?

最佳答案

一个选择是采用易于实现的密码,例如 http://en.wikipedia.org/wiki/Blowfish_%28cipher%29并以减少的轮数运行它 - 例如从 16 到 3。 3 - 因为在 http://en.wikipedia.org/wiki/Feistel_cipher#Theoretical_work 中使用了 3 轮.

另一种方法是使用 h(x) = a * x + b mod p(如果 a 是奇数,则使用 mod 2^n)。对于 p 素数,这是 http://en.wikipedia.org/wiki/Universal_hashing 的示例如果 x 被限制为 (0, p-1)。其中 x 实际上是多个单词,您可以单独处理每个单词 - 根本不安全,但安全不是您的目标。它是否足够随机取决于您的数据以及您试图通过散列来实现的目标。

关于java - 非密文加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com