linux - 为什么Linux上的ECDSA签名不能在Windows上验证成功?
问题描述
我使用以下命令行在 Linux 中生成 ECDSA 签名。在 Linux 中,您可以使用命令行来验证签名。这没问题
在Windows中,同样的命令行也可以签名验证成功
openssl ecparam -name secp192k1 -genkey -out ec.key
openssl ec -in ec.key -pubout -out ec.pubkey
openssl dgst -sha1 -sign ec.key -out ec.sig content.txt
openssl dgst -sha1 -verify ec.pubkey -signature ec.sig content.txt
但事情就是这样。
我把Linux中生成的所有文件都放到Windows中,然后用命令行验证签名,结果报错,为什么?
解决方案
content.txt,Linux 生成以字节 0x0a 结尾的内容,但 Windows 创建不以字节 0x0A 结尾的内容。所以,事实上,Linux 和 Windows 对不同的内容进行签名,所以 Windows 会验证 Linux 没有正确签名
推荐阅读
- javascript - 将函数转换为异步等待
- r - 如何使用 R 中的会话令牌连接到 Amazon Athena?
- c# - Discord Bot/Program 应在发生特定操作时发布消息
- javascript - 为什么我的 RegexExp 不能正常工作?
- prestashop - PrestaShop - 在结账时为产品创建一个“添加到购物车”按钮
- ios - 让现有的指纹认证应用程序与 iPhone X FaceId 一起工作
- javascript - JS Hangman - 使用数组中的多字答案
- javascript - 是否可以在服务器端 Express Route 中提供客户端 React 组件/应用程序?
- php - 带有 Swagger 的 PHP REST API - LiveHelperChat
- c++ - 使用 cmake 链接到自定义框架 - 构建时位置正确,运行时位置错误