gpt4 book ai didi

bash - openssl enc -base64 -d 在一定长度后不解码字符串

转载 作者:行者123 更新时间:2023-12-01 04:58:01 25 4
gpt4 key购买 nike

我有一个简单的 bash 脚本,它使用 base64 对字符串进行编码/解码。脚本是:

#!/bin/bash
echo "encode or decode ?"
read input

if [ "$input" == "encode" ]
then

echo Please, enter your secret message
read message
echo "The cipher representing your message is"
echo -n $message | openssl enc -base64


else

echo "Please enter your cipher"
read cipher
echo "Your secret message is"
echo $cipher | openssl enc -base64 -d
echo ""


fi

只要被编码的字符串的长度最多为 49 个字符,脚本就可以正常工作。长度超过 49 个字符的字符串无法正确解码。知道我的脚本可能有什么问题吗?

非常感谢!

最佳答案

openssl enc -base64在编码字符串的 64 个字符后插入回车符。这实际上发生在要编码的字符串的第 49 个字符处。

要避免编码字符串中出现此换行符,请使用选项 -A在两个 openssl一次编码或解码整个字符串的命令:

echo -n $message | openssl enc -base64 -A


echo  $cipher | openssl enc -base64 -d -A 

这看起来特定于 openssl .如果您使用 base64 coreutils 包中的可执行文件,这也可以。

关于bash - openssl enc -base64 -d 在一定长度后不解码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com