Java 如何从AES-GCM密码文本中删除签名?

Java 如何从AES-GCM密码文本中删除签名?,java,encryption,aes,aes-gcm,Java,Encryption,Aes,Aes Gcm,我们需要加密字符串,并查看数据库中是否已经存在加密字符串 如果我们使用AES-GCM,相同的未加密数据每次都会产生不同的加密字符串。这使得匹配的数据无效 有没有一种方法可以使用Java从签名的密码文本中删除签名,以显示我们可以匹配的密码文本?签名不是问题所在。与大多数现代加密模式一样,AES-GCM使用;安全实现将随机生成一个IV。由于每次选择的IV不同,因此加密数据也会不同 根据您的要求,您需要强制IV为常量,或者使用不同的加密模式。(可能根本不需要加密数据;如果需要支持的唯一任务是查找,则加

我们需要加密字符串,并查看数据库中是否已经存在加密字符串

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


有没有一种方法可以使用Java从签名的密码文本中删除签名,以显示我们可以匹配的密码文本?

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


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

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


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

如果可以使用任何哈希算法,这些算法在数据不不同时总是生成相同的哈希值,而其他人也无法读取。好主意。我们的初始实现很久以前就使用了散列。不幸的是,必须存储数据。因此,我们必须同时存储散列和加密数据。此外,对原始数据进行散列可以提供到原始数据的数学链接。数学链接和遵从性约束的组合意味着哈希是不可能的。如果可能,请使用任何哈希算法,这些算法在数据不不同时总是生成相同的哈希值,并且其他人也无法读取。好主意。我们的初始实现很久以前就使用了散列。不幸的是,必须存储数据。因此,我们必须同时存储散列和加密数据。此外,对原始数据进行散列可以提供到原始数据的数学链接。数学链接和遵从性约束的组合意味着哈希是不可能的。所以我们看了这个,你们说得很对。不幸的是,我们无法在使用的工具集上设置IV。因此,我们改变了工具,现在正在愉快地进行加密/解密和匹配。谢谢。所以我们看了这个,你说得很对。不幸的是,我们无法在使用的工具集上设置IV。因此,我们改变了工具,现在正在愉快地进行加密/解密和匹配。非常感谢。