建议快速双向加密?

时间:2009-11-06 18:59:06

标签: algorithm encryption long-integer

有人建议使用快速双向加密算法吗?

我的候选人是:

  • AES:NIST FIPS-197指定的高级加密标准。
  • BLOWFISH:由Bruce Schneier定义的Blowfish算法。
  • DES:由NIST FIPS-46-3定义的数据加密标准算法。
  • DESEDE:由NIST FIPS-46-3定义的“Triple DES”算法。

修改 -

速度比安全更重要。实际的请求是“混淆”通过内部Web服务传递的ID,因此,如果ID被暴露,则无法通过添加1来猜测其他ID。(UUID键的参数超过自动增量长度?)< / p>

4 个答案:

答案 0 :(得分:2)

使用AES。速度是其选择取代DESEDE的主要考虑因素。在现代PC硬件上,它往往比Blowfish更快,作为标准,它更有可能获得专门的硬件支持。

顺便说一句,所有密码都加密长整数 - 每个字节流都是一个整数,用base-256表示。

答案 1 :(得分:1)

  

我不需要公钥。要求是在数据库中在计算机之间传递时对其进行加密。两台机器都有盐

然后,XOR

答案 2 :(得分:1)

您选择的主要标准是什么?速度还是安全?这是加密业务的基本权衡。这是一组benchmark results for Crypto++。他们不会告诉你一切,但是你可以告诉哪些算法通常比其他算法更快。这是一个whitepaper discussing the relative strengths of some popular algorithms。在一般情况下确定强度是一项非常困难的事情,尽管一些算法已经得到足够的重视,他们的优点和缺点是众所周知的(DES,RSA等)。传统的经验法则是较长的键意味着更大的优势,但你必须非常小心。我怀疑在你的情况下,AES或Blowfish都可以。 AES可能会得到更广泛的支持,但实际上 - 要么可能会这样做。除非速度是一个关键因素,否则远离DES。

答案 3 :(得分:1)

如果您主要担心安全问题,我会选择AES。

但是,密文可能对您的数据库来说太大了。如果你添加IV,填充,它至少是十六进制的64个字符。如果遇到这样的限制,你可以使用我在这里发布的算法

simple symmetric encryption of long to String (and back) in java