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