【问题标题】:Which encryption mode ECB, CBC, CFBECB、CBC、CFB哪种加密模式
【发布时间】:2010-07-18 14:12:36
【问题描述】:

我的 php 脚本和我的 c# 应用程序将相互传递一个 32 个字符长的哈希字符串,最好的模式是什么?我认为欧洲央行,但不确定是否使用超过 1 个块不使用。我怎么知道块有多大?

他们偶尔会传递一个大文本文件,这将是加密这个...CBC的最佳模式?

欢迎任何有用的阅读...

谢谢

【问题讨论】:

  • 哈希函数的选择取决于你想通过交换哈希码达到什么目的。请详细说明。
  • 哈希是一个数字。其散列的原因是因为它是存储在数据库中的 ID。我对其进行了哈希处理,因此所有 ID 的长度都相同。
  • I hashed it so all IDs have the same length... 如果这是您进行散列的唯一目的(我对此表示怀疑),那么您就不会关心散列的任何加密特征。问问自己:不是散列,而是用前导零填充数字 ID 满足我的目的吗?此外,当您提到大文本文件的加密时,散列似乎还有第二个目的。 (顺便说一句,对于大型文本文件,CBC 对 EBC 来说当然是一个大满贯)。
  • @mjv 感谢 cmets...CBC 就是这样!

标签: encryption cryptography aes


【解决方案1】:

ECB 的一个问题(在许多其他问题中)是它确定性地加密。也就是说,每次加密相同的 ID 时,都会得到相同的密文。因此这种模式不会妨碍流量分析。攻击者可能无法获知已加密的 ID。但是,他仍然可以确定发送同一 ID 的时间和频率。

CBC 和 OFB 在正确使用时会为每次加密使用新的随机 IV,从而每次加密相同的 ID 不同。由于您还确保所有 ID 具有相同的长度,因此结果应该是密文,攻击者无法区分重复 ID 和非重复 ID。

【讨论】:

    【解决方案2】:

    ECB 是最简单的模式,确实不推荐(它不如其他模式安全)。

    我个人会使用 CBC。

    【讨论】:

    • 您能否详细说明为什么您更喜欢 CBC 而不是其他人,例如循环流化床?它更安全,还是性能更好?
    【解决方案3】:

    除了鹰科的答案。您需要将 IV 提供给解密过程。在 CBC 或 OFB 的情况下,这也是开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      相关资源
      最近更新 更多