记一次openssl同样命令加密结果不同的原因。

比如命令使用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能保持一致
参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值