python——为什么谷歌云kms会为相同的输入文本生成不同的加密密文?

t5fffqht  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(360)

我正在尝试使用google云密钥管理服务(kms)python api加密机密和敏感数据。我注意到在加密后的每次迭代中,同一个密钥用于精确的输入文本会生成不同的加密密文。我的意思是,对于相同的输入文本,我得到不同的加密密文。
我的问题是,,
为什么加密密文被更改了?如何为相同的输入获取相同的加密密文/值?
如何控制加密密文的长度?
下面是我使用的python代码

from google.cloud import kms
client = kms.KeyManagementServiceClient()
name = 'projects/sandbox/locations/global/keyRings/encryptdecrypt-keyring/cryptoKeys/encryptdecrypt-key_v01/cryptoKeyVersions/1' #CryptoKey info 
plaintext = b'hello123' # The data to encrypt

enc1=client.encrypt(request={'name': name, 'plaintext': plaintext})

裁判:
jupyter笔记本截图
https://cloud.google.com/kms/docs/encrypt-decrypt
https://googleapis.dev/python/cloudkms/1.4.0/gapic/v1/api.html

vddsk6oq

vddsk6oq1#

是的,系统在加密同一输入时会生成不同的密文。这是大多数加密系统的重要安全控制;它可以防止攻击者让您加密特定消息m的攻击,这样他们就可以确定手中的密文c是否也是同一消息m的加密副本。
有些系统提供一致的加密输出;该属性称为确定性加密。但是,我建议在选择机制之前咨询密码Maven;这些工具很棘手。
我们不承诺加密密文的确切长度;如果你需要预测,我想知道更多关于我们为什么以及如何提供帮助的信息。
感谢您使用gcp和云kms!

相关问题