网站是这个: https://8gwifi.org/PemParserFunctions.jsp
测试公钥:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxQsGcWyJ6EucBfFcAaGk
1sL8zUf0z7cy/+mwDUao97ctJiKUdViVFTx42ZMvw2MKh7XC3cyu/PbCBLQ7y2NQ
t5aRIFI/LW0wFsoUateSsUKaDRBys7DnyBrVCUFr8pN71bmHWjbYfW9iG72vqHKb
iUHpixQNyNGv7HCYAEpjOHdj+vMSHC2vISH2+ui53he8IFqiolOlD6JCaSZECkB0
Q+IYEtYRMBLcT8OiPOvQfBJijwMCbkxgocFNq4nby30tG4NyLyXBtMihn/6lDksP
KL7dLwFOF1bj/9hveAugSTE5xDE001/69oFwmx3CmDHwGqoLqmUTwwnvFwRSf3Ku
8QIDAQAB
-----END PUBLIC KEY-----
8gwifi 这个网站给出的结果是:
Algo RSA
Format X.509
ASN1 Dump
RSA Public Key [f6:05:87:84:22:36:d9:c2:ed:4d:b2:7b:d3:90:c2:c6:72:71:af:7d]
modulus:
...
它给出的公钥指纹长度是 20 字节,应该是 sha1 哈希函数。
将这个公钥获取其 hex 值:
30819f300d06092a864886f70d010101050003818d00308189028181008686980c0f5a24c4b9d43020cd2c22703ff3f450756529058b1cf88f09b8602136477198a6e2683149659bd122c33592fdb5ad47944ad1ea4d36c6b172aad6338c3bb6ac6227502d010993ac967d1aef00f0c8e038de2e4d3bc2ec368af2e9f10a6f1eda4f7262f136420c07c331b871bf139f74f3010e3c4fe57df3afb716830203010001
然后使用 https://emn178.github.io/online-tools/sha1.html 进行计算,得出的结果是:
1c59aeb6032e94a534dbb3303e7085e4a7637ed5
在本地使用 openssl 命令又得出另外的结果:
$ openssl rsa -pubin -in public_key.pem -outform DER | openssl sha1 -c
SHA1(public_key.der)= b1:c1:0e:ae:36:56:81:e9:52:d2:76:77:26:0e:a8:1b:d8:84:22:ff
所以到底哪个结果是正确的?已经反复验证过输入是一样的公钥。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.