You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下如何不通过二进制文件调用Amazon AWS KMS解密函数?

在Windows下无需临时二进制文件解密AWS KMS加密字符串

嘿,我完全懂你不想生成临时二进制文件的烦恼!在Windows上不用绕base64/certutil写文件的步骤,直接用PowerShell配合AWS CLI就能搞定,给你分享两种亲测有效的方法:

方法一:PowerShell直接处理(推荐)

PowerShell对字节和Base64的转换支持很友好,能直接把Base64加密串转成字节流,通过管道传给AWS CLI的解密命令,全程不碰磁盘文件:

# 替换成你的Base64加密字符串
$encryptedBase64 = "你的KMS加密后的Base64字符串"

# 解密流程:Base64转字节 -> 传给AWS CLI -> 解密后转明文
$encryptedBytes = [Convert]::FromBase64String($encryptedBase64)
$encryptedBytes | Set-Content -Path - -Encoding Byte | aws kms decrypt --ciphertext-blob file:///dev/stdin --output text --query Plaintext | ForEach-Object { [Convert]::FromBase64String($_) }

命令解释:

  • [Convert]::FromBase64String():把Base64字符串转成二进制字节数组
  • Set-Content -Path - -Encoding Byte:把字节数组输出到标准输出(-代表标准输出)
  • aws kms decrypt --ciphertext-blob file:///dev/stdin:让AWS CLI从标准输入读取二进制加密数据
  • --output text --query Plaintext:指定输出解密后的明文Base64串
  • 最后一步把返回的Base64明文再转成可读字符串

方法二:利用CMD + PowerShell混合(适合习惯CMD的场景)

如果平时用CMD更多,也可以把PowerShell的字节转换逻辑嵌入到CMD命令里:

powershell -Command "$encryptedBytes = [Convert]::FromBase64String('你的Base64加密字符串'); $encryptedBytes | Set-Content -Path - -Encoding Byte" | aws kms decrypt --ciphertext-blob file:///dev/stdin --output text --query Plaintext | powershell -Command "$input | ForEach-Object { [Convert]::FromBase64String($_) }"

注意事项:

  • 确保你的AWS CLI已经配置好正确的权限(需要kms:Decrypt权限,并且密钥策略允许当前身份解密)
  • 如果你需要把明文输出到控制台或者变量里,可以调整最后一步的处理逻辑,比如保存到文件的话就加> plaintext.txt

内容的提问来源于stack exchange,提问作者Bert Cushman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:33:47