使用CiphertextBlob作为字符串获取InvalidCiphertextException

问题描述

我正在尝试使用AWS KMS解密字符串,但出现InvalidCiphertextException错误(在异常名称后没有更多信息)。

我最初是在一个节点js lambda中使用环境变量作为crypticString的源进行解密:

var params = {
    CiphertextBlob: Buffer.from(encryptedString,'base64')
};
kms.decrypt(params,function(err,data) {
    if (err) {
        ...
    } else {
        ...
    }
}

我也尝试将CiphertextBlob值用作字符串,即:

CiphertextBlob: encryptedString

最初用于加密值的KMS密钥是对称的CMK,所以我认为不需要传递密钥ID。

我也通过awscli尝试了同样的事情(将ciphertext-blob作为字符串传递),但是得到了相同的错误:

aws kms decrypt --ciphertext-blob <encrypted string value> --query PlainText | base64 --decode

传递密钥ID也不起作用。

我使用了一个在线工具来验证加密的字符串是否为base64。我不太了解base64编码,因此不确定是否要证明密文是有效的。

我确定我的基本功不合格-我的加密字符串不是base64或解密所期望的不是,或者我可能缺少一些其他解密参数。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)