我想用bash中的aes-256-cbc对随机生成的令牌进行编码。当我在shell中编写这段代码时:
echo -n 8724eb94-ff8f-441e-81a7-bc4282f7c342 | openssl enc -a -e -aes-256-cbc -nosalt -pass pass:fzJKp5/vYUWZUZ1hVSXycdmskKcSNtmZoFhPv5UtWGuoV9yH61JCjKzXUWmRCJJ9FITOi66ANSDpBJZKjrRFjA==
我得到: HdkTpAnsJ + bHi0DggaQq3iJMh0mrgcohOiJDeGzpqLFdvZUEXaD3YBEqGa4rBB7Y - 它与Node.js加密模块中的相同。
但是!当我在bashscript中编写这段代码时:
hash=$(echo -n 8724eb94-ff8f-441e-81a7-bc4282f7c342 | openssl enc -a -e -aes-256-cbc -nosalt -pass pass:fzJKp5/vYUWZUZ1hVSXycdmskKcSNtmZoFhPv5UtWGuoV9yH61JCjKzXUWmRCJJ9FITOi66ANSDpBJZKjrRFjA==);
echo ${hash}
我得到 alphrNunU02O4Xxw + qVgaEEaZGTrdGenvgsGnt0lczOkGKX5l6rAQTY3EJ8VA0iB ,我不知道为什么以及bug在哪里。我曾尝试使用``,但编码值相同。
我从来没有用bash写任何东西,所以我不知道一些"技巧"。
感谢您的回答!
答案 0 :(得分:0)
我明白了。我用过:
'sh script.sh'
运行我的脚本。但是当我这样做的时候:
'bash script.sh'
一切都很完美。我不知道为什么(还)现在我会寻找'你'和'bash'之间的区别是什么。
感谢您提出一些建议!