AWS Encryption CLI加密添换行符致生产EC2入库应用报错求助
解决AWS加密CLI命令行输出末尾带换行符的问题
核心问题是你使用echo "VA"时,默认会在输出末尾追加换行符,导致加密的原始内容实际是VA\n(包含换行),解密后自然多出一个换行,触发应用层的长度校验错误。
直接解决方法
取消echo的自动换行
使用echo -n参数可以禁止追加换行符,修改后的命令如下:echo -n "VA" | /usr/local/bin/aws-encryption-cli --encrypt --encode --input - --wrapping-keys key=XXX --metadata-output ~/metadata --commitment-policy require-encrypt-require-decrypt --output -强制移除输出末尾换行(备用)
如果加密命令本身仍会输出换行,可以通过管道追加tr -d '\n'来删除所有换行符:echo -n "VA" | /usr/local/bin/aws-encryption-cli --encrypt --encode --input - --wrapping-keys key=XXX --metadata-output ~/metadata --commitment-policy require-encrypt-require-decrypt --output - | tr -d '\n'
文件输入输出的解决方式
如果使用文件作为输入,确保输入文件不含末尾换行:
# 创建无换行的输入文件 printf "VA" > input.txt # 执行加密 /usr/local/bin/aws-encryption-cli --encrypt --encode --input input.txt --wrapping-keys key=XXX --metadata-output ~/metadata --commitment-policy require-encrypt-require-decrypt --output output.txt
此时output.txt中的加密内容就不会附带多余换行,解密后与原始输入一致。
内容的提问来源于stack exchange,提问作者jonathan-taub-billgo
相关产品推荐
相关产品推荐

