Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么每次使用AWS KMS CMK加密时都会得到不同的字节?_Java_Mysql_Amazon Web Services_Encryption_Sdk - Fatal编程技术网

Java 为什么每次使用AWS KMS CMK加密时都会得到不同的字节?

Java 为什么每次使用AWS KMS CMK加密时都会得到不同的字节?,java,mysql,amazon-web-services,encryption,sdk,Java,Mysql,Amazon Web Services,Encryption,Sdk,我正在尝试使用aws kms cmk将我的敏感数据(如用户电子邮件地址)加密到数据库。我正在java中使用aws SDK 我已对字段进行加密并存储在数据库中 我还可以解密数据 但主要的问题是当我不得不查询数据时。。。 当我取回aws sdkbytes并将其转换为base 68并存储时 为什么aws在加密后总是为相同的数据返回不同的SDK字节? 我不能简单地搜索数据。 我必须带上所有的列表,解密数据,然后匹配数据。 这需要很多时间 请建议我使用aws cmk密钥加密数据的好方法 谢谢 Ankit加

我正在尝试使用aws kms cmk将我的敏感数据(如用户电子邮件地址)加密到数据库。我正在java中使用aws SDK

我已对字段进行加密并存储在数据库中

我还可以解密数据

但主要的问题是当我不得不查询数据时。。。 当我取回aws sdkbytes并将其转换为base 68并存储时

为什么aws在加密后总是为相同的数据返回不同的SDK字节? 我不能简单地搜索数据。 我必须带上所有的列表,解密数据,然后匹配数据。 这需要很多时间

请建议我使用aws cmk密钥加密数据的好方法

谢谢
Ankit

加密如果做得好,永远不会确定。确定性和加密始终
abc@abc.com
fa3GeFi2nb52JH0
将是一个弱点,因为它会泄漏信息(如果您发现两个相等的密文,则您知道它们包含相同的纯文本。您不知道确切的值,但您知道它是相同的)。从技术上讲,您可以将一个名为IV(初始化向量)的随机值传递给加密过程,但我们不必深入研究

那么,如何处理你的案件。您可以:

  • 接受它现在的样子
  • 假设您希望您的加密是确定性的,即使是以较弱和泄漏数据为代价

如何使加密具有确定性?使用恒定IV值。我不知道这是否可以在AWS中实现以及如何实现,但这将是最简单的方法。

通过以这种方式使用KMS,您正在执行客户端加密,这将让您在检索数据后负责解密

目前还没有在SQL操作中明确使用KMS密钥的实现,唯一支持的是在文件存储的其余部分进行加密

你的选择是:

  • 切换到
  • 从加密切换到哈希以匹配此字段(不理想)
  • 缩小范围以解密后执行后处理

您可能指的是base 64。谢谢,,我可以在本机MySQL加密中使用aws密钥吗?我不希望我的密钥存储在该级别,我可以在MySQL的加密和解密功能中使用aws cmk吗?恐怕不行,目前,SQL引擎不支持它缩小到decrpt后执行后处理是什么意思?实际上,现在要做的是,在SQL查询中添加任何不依赖加密数据的条件。然后循环并解密,然后对加密字段进行比较Hanks Marek,,我是否能够使用常量初始化向量为相同的数据保存相同的加密值我是否可以获得任何引用我如何使用它来完成我的工作…我现在的用例是如果我加密相同的值…并且它已使用加密值存储在我的数据库中,我希望它能像上面一样保存…我不知道这是否可行,,,,但如果成功,我会保存我的努力…我不知道AWS SDK是否允许它。可能不会。如果没有,您必须自己处理加密,并使用JCA/JCE自己进行加密。如果有从外部传递IV的方法,请在AWS SDK API中搜索。您好,我可以将AWS kms密钥与MySQL非对称加密(keyrings)一起使用吗。?