【问题标题】:How do I strip the signature from an AES-GCM cipher text?如何从 AES-GCM 密文中剥离签名?
【发布时间】:2015-04-20 04:18:31
【问题描述】:

我们需要对字符串进行加密,并查看加密后的字符串是否已存在于数据库中。

如果我们使用 AES-GCM,相同的未加密数据每次都会产生不同的加密字符串。这使得匹配无用。

有没有办法使用 Java 从签名的密文中删除签名以显示我们可以匹配的密文?

【问题讨论】:

  • 如果可以使用任何散列算法,当数据没有不同时总是产生相同的散列值,并且其他人仍然无法读取。
  • 好主意。很久以前,我们的初始实现使用了哈希。不幸的是,必须存储数据。所以我们必须同时存储散列和加密数据。此外,对于我们需要散列的原始数据提供了与原始数据的数学链接。数学链接和合规性约束的组合意味着散列是不可能的。

标签: java encryption aes aes-gcm


【解决方案1】:

签名不是问题。像大多数现代加密模式一样,AES-GCM 使用initialization vector;安全实现将随机生成一个 IV。由于每次选择的 IV 都不同,因此加密的数据也会不同。

根据您的要求,您需要将 IV 强制为恒定值,或使用不同的加密模式。 (可能根本不需要加密数据;如果需要支持的唯一任务是查找,加密哈希函数可能更合适!)

【讨论】:

  • 所以我们看了这个,你是对的。不幸的是,我们无法在我们使用的工具集上设置 IV。所以我们改变了工具,现在很高兴地进行加密/解密和匹配。谢谢。
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
相关资源
最近更新 更多