openssl linux 和 windows 下 密钥签名结果不一致

新手上路,请多包涵

Q1: linux 下使用

echo aaaaa | openssl rsautl -sign -inkey xxxx.pem | openssl enc -base64 

得到的值与
windows 下相同的操作得出来的值 不同

Q2:上面 linux 下的命令,用 python 处理的话怎么写?

ps : 尝试了多种方法,得出来的签名后的值都与 linux 下的不同。

阅读 4.6k
2 个回答

"echo aaaaa"输出的结果带回车,即“aaaaa\n”,要输出纯字符串“aaaaa”的话需要使用"echo -n aaaaa",不确定是不是这个原因,仅供参考

实际上问题出在linux和windows输出时字符时的问题,在Linux上会追加\n,而在Windows上会追加\r\n。对于这种情况,可以使用python来进行兼容:

import base64
data = 'aaaaa'
base64.b64encode(data)
>>> 'YWFhYWE='

而你中间还有1个加密的过程,这里会不展示了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题