tplinkdes解密失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tplinkdes解密失败相关的知识,希望对你有一定的参考价值。

参考技术A 加密的填充模式不对。
2.1使用哪一种填充模式加密的,也必须采用哪种填充模式解密。
2.2CBC加密模式需要有一个IV参数也就是初始化向量,这个值在加密时会随机生成,但必须保存下来,否则无法完成解密工作。
2.3建议采用ECB模式,或者在使用CBC时将初始化向量保存,在解密时使用。
/算法名称/加密模式/填充方式://DES共有四种工作模式-->>ECB:电子密码本模式、CBC:加密分组链接模式、CFB:加密反馈模式、OFB:输出反馈模式,//此处应该注意加密模式的取值,建议使用ebc模式下的PKCS5Padding自动填充形式。修改前的模式//publicstaticfinalStringCIPHER_ALGORITHM=“DES/ECB/NoPadding“。修改后的模式publicstaticfinalStringCIPHER_ALGORITHM=“DES/ECB/PKCS5Padding。

谷歌云 KMS:加密有效但解密失败

【中文标题】谷歌云 KMS:加密有效但解密失败【英文标题】:Google cloud KMS: encryption works but decryption fails 【发布时间】:2018-06-18 16:35:36 【问题描述】:

我正在尝试使用 google KMS 工具解密令牌。 在本地运行它,出于某种原因,加密似乎有效,但解密无效。

我正在运行以下代码:

import base64
import googleapiclient.discovery
kms_client = googleapiclient.discovery.build('cloudkms', 'v1')
crypto_keys = kms_client.projects().locations().keyRings().cryptoKeys()
name = "projects/my-project/locations/my-loc/keyRings/my-kr/cryptoKeys/my-key"
request = crypto_keys.decrypt(name=name, body='ciphertext': base64.b64encode("my text").decode('ascii'))
response = request.execute()

最后一行返回400错误:

HttpError: <HttpError 400 when requesting https://cloudkms.g[...]ion:decrypt?alt=json 
returned "Decryption failed: verify that 'name' refers to the correct CryptoKey.">

然而,这个名字实际上似乎是正确的。 令人惊讶的是,将decrypt 的调用替换为encrypt,我得到了一个有效的输出。

我错过了一个明显的错误,还是应该在项目的 github 上打开一个问题?

编辑: 我试图解密纯文本,这当然没有多大意义(但错误信息有点误导了我)。

【问题讨论】:

看起来您正在尝试解密纯文本? 哦,我的错,我有点假设它仍然会解密某些东西,但显然情况并非如此。再试一次。 您认为值得我们在这里更改错误消息吗?我们应该把它改成什么?感谢您使用 Google Cloud KMS! 好吧,我想没有明显的方法可以确定一个人是否使用了错误的密钥或密文是否错误。事后看来,我做了一个微不足道的错误操作,所以我不确定是否有更好的错误信息可以给出。也许更像是“密文与选择的 CryptoKey 不兼容? 我已经提交了一个内部问题 [b/134206804] 以尽可能改进错误消息,我们会看看我们是否可以抽出时间将其作为“产品卓越”改进。感谢您的报告和参与,帮助我们改进产品,感谢您使用 GCP 和 Cloud KMS! 【参考方案1】:

确保您尝试解密的密文是使用相同的密钥加密的。如果您使用另一个密钥进行加密,KMS 会告诉您它无法找到密钥,而实际上已找到密钥但无法用于解密密码。

我认为错误信息“有点”误导。

【讨论】:

以上是关于tplinkdes解密失败的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 OpenPGP.js 解密未装甲的 pgp 文件:会话密钥解密失败

谷歌云 KMS:加密有效但解密失败

OpenSSL RSA解密随机失败C / C ++

OpenSSL 解密失败但错误代码为 0

SAML EncryptedAssertion解密失败

Hashicorp Vault - 读取失败:解密失败:密码:消息身份验证失败