gpt4 book ai didi

.net - 从 SSL 证书中提取序列号

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:54 28 4
gpt4 key购买 nike

客户端和服务器持有匹配的证书。

当服务器发送通信时,它会解码证书中的序列号并将其传递给客户端。然后,客户端可以从其证书副本中获取序列号,并将其与服务器提供的序列号进行比较。这些应该匹配。

证书中序列号的字符串表示形式如下:-

58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08 58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08

Windows 服务器使用以下方法提取字节:X509Certificate.GetSerialNumber .提取的字节被视为:-

8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88 8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88

在 OS X(客户端)上,使用 Core Foundation 函数 SecCertificateCopySerialNumber ,提取的字节返回:-

88 23 -101 -09 14 -13 -122 74 65 -33 -94 -18 96 -110 8 88 23 -101 17 -98 14 -13 -122 74 65 -33 -94 -18 96 -110 8

显然,这些不匹配。另外,使用Qt,可以使用QSslCertificate并通过调用 serialNumber() 获取序列号.但是,这会返回以下字节:-

53 56 58 49 55 58 57 98 58 49 49 58 57 101 58 48 101 58 102 51 58 56 54 58 52 97 58 52 49 58 100 102 58 97 50 58 101 101 58 54 48 58 57 50 58 48 56 58 53 56 58 49 55 58 57 98 58 49 49 58 57 101 58 48 101 58 102 51 58 56 54 58 52 97 58 52 49 58 100 102 58 97 50 58 101 101 58 54 48 58 57 50 58 48 56

这是怎么回事,为什么字节数组都不匹配,我如何在 OSX 上提取与 Windows 服务器的序列号相匹配的序列号?

最佳答案

字符串,无符号字符,十六进制表示

58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08 58 17 9B 11 9E 0E F3 86 4A 41 DF A2 EE 60 92 08

Windows, unsigned chars, decimal representation with reverse order

8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88 8 146 96 238 162 223 65 74 134 243 14 158 17 155 23 88

OS X,有符号字符,十进制表示

88 23 -101 -09 14 -13 -122 74 65 -33 -94 -18 96 -110 8 88 23 -101 17 -98 14 -13 -122 74 65 -33 -94 -18 96 -110 8

三种表示法都相等

关于.net - 从 SSL 证书中提取序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com