在bash脚本中使用Openssl aes-256-cbc

时间:2014-07-16 20:13:36

标签: bash shell openssl

我想用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写任何东西,所以我不知道一些"技巧"。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

我明白了。我用过:

'sh script.sh'

运行我的脚本。但是当我这样做的时候:

'bash script.sh'

一切都很完美。我不知道为什么(还)现在我会寻找'你'和'bash'之间的区别是什么。

感谢您提出一些建议!