比如命令使用aes-256-cbc加密“abc”密码为“password”
echo "abc" | openssl enc -aes-256-cbc -a -nosalt -pass pass:password
这个命令的加密结果在苹果系统macos 10.15或者ubuntu 16上为
rATlXVKWGrrl7NfjRu685A==
在Linux ubuntu 18上结果为
eytYdlxaT7hPr8JUkHYSZg==
原因是不同版本的openssl在加密"abc"的时候将密码"password"转化为密钥时候所用的摘要函数即哈希函数不一样,苹果系统使用的openssl版本为LibreSSL 2.8.3
用的哈希函数为md5,ubuntu16的openssl版本小于1.1,使用的哈希函数为md5。而ubuntu18使用openssl 1.1,使用的哈希函数为sha256,只要openssl版本大于1.1,都使用sha256.
要统一哈希函数就要加-md参数指定哈希函数。
echo "abc" | openssl enc -aes-256-cbc -a -nosalt -pass pass:password -md sha256
这样macos catalina上的加密结果才能和ubuntu18能保持一致
参考

博客介绍了使用aes - 256 - cbc加密“abc”密码为“password”时,苹果系统macos 10.15、ubuntu 16和ubuntu 18加密结果不同的原因,是不同版本openssl在将密码转化为密钥时所用哈希函数不同。指出可加 - md参数指定哈希函数使macos和ubuntu 18加密结果一致。
817

被折叠的 条评论
为什么被折叠?



