看到dudu发现Cache的BUG问题,于是乎,我也来写一篇,之前发现的一个问题。

首先,我们找一张证书(大家可以在ie浏览器的“Internet 选项”à内容à证书,选择一张证书保存到文件或直接打开看看)。可以看到使用者的信息,如下图所示:

然后,我们使用.net 的X509Certificate类的解析证书内容。具体代码如下:

X509Certificate x509 = new X509Certificate(@"d:\1.cer");

var subject = x509.Subject;

Console.WriteLine(subject);

Console.Read();

运行代码,可以看到如下内容:

CN=Microsoft Windows Hardware Compatibilioration, L=Redmond, S=Washington, C=US

现在问题来了,就是这个S=Washington的项和其他安全库解析的不一样,其他的解析出来都是ST=Washington。

按照RFC规范这个S项目表示StateOrProvinceName。解析不一样的结果就是:由于.net中安全类实现很有限,如果混合其他的安全库一起使用,在解析证书时不一样,而且还会导致通过拆分这段字符串来查找ST就会出错,还有如果计算这段字符串的HASH值也就不一样了。

于是乎,查找了相关的RFC规范,其中RFC 1779 (A String Representation of Distinguished Names)中给出了标准形式是:

Key     Attribute (X.520 keys)

------------------------------

CN      CommonName

L       LocalityName

ST      StateOrProvinceName

O       OrganizationName

OU      OrganizationalUnitName

C       CountryName

STREET StreetAddress

RFC 2256( A Summary of the X.500(96) User Schema for use with LDAPv3)也是这样描述的:

   This attribute contains the full name of a state or province
   (stateOrProvinceName).
    ( 2.5.4.8 NAME 'st' SUP name )

就搞不清楚,.Net的实现或者说是WINDOWS的实现,参考的规范不一样?还是本来实现就有问题存在BUG?还是说微软故意不走寻常路?

转载于:https://www.cnblogs.com/xray2005/archive/2011/11/07/2240445.html

X509Certificate类解析证书的差异,算是.Net的BUG吗?相关推荐

  1. Java解析证书内容

    Java解析证书获取证书内部信息,在证书交换环节中常使用,网络上也提供很多参考方案,本文主要是提供证书base64格式解析和证书路径解析证书内容.在解析时可能会遇到一些问题,后面根据情况再具体说明. ...

  2. RandomAccessFile类解析

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--RandomAccessFile类解析 的相关知识: 0.1) 本文 转自: http ...

  3. @param注解的用法解析_SpringBoot 配置类解析

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/NvPO5-FWLiOlrsOf4wLaJA 作者:Li Wanghong SpringBoot ...

  4. Android开发--使用实体类解析JSON文本

    Android开发–使用实体类解析JSON文本 在Android开发过程中,涉及到了API的调用的时候,会返回特定的数据,两个主流返回的数据格式是JSON形式和XML形式.但是相对于XML,JSON数 ...

  5. Java String、StringBuffer、StringBuilder类解析

    String.StringBuffer.StringBuilder类解析 概述 String类:代表字符串. 特点 String实现了Serializable接口,表示String是可序列化的 实现了 ...

  6. Python OpenSSL 解析证书

    openssl 介绍这里不做过多赘述,可以搜到很多相关资料.本文提供python 使用OpenSSL解析证书的方法. OpenSSL 解析certificate 证书 import OpenSSL i ...

  7. Python解析证书结构方法

    Python解析证书结构方法 示例代码 示例代码 推荐使用:Python库 pyasn1 和 pyasn1-modules,pip安装失败的话,用conda安装即可. from pyasn1_modu ...

  8. HTML浏览器解析位置错误,各浏览器对CSS错误解析规则的差异及CSS hack.pdf

    各浏览器对各浏览器对CSS错误解析规则的差异错误解析规则的差异及及CSS hack 标签标签 :_ , * , -moz-..., -webkit-... , !important, hack, 兼容 ...

  9. 免费生成SSL泛解析证书

    免费生成SSL泛解析证书 1.前置条件 1.1.域名已备案 1.2.要申请证书的域名可以正常访问 1.3.一台LInux服务器 1.4.域名已挂载到腾讯云CDN(并非必须是鹅厂CDN解析平台.其他平台 ...

  10. 【Qt】x509证书操作之解析证书信息

    QSslCertificate支持x509证书信息的解析 证书信息接口 函数 功能 QByteArray version() const 版本 QByteArray serialNumber() co ...

最新文章

  1. SQLServer自增变量修复
  2. js去掉字符串中的所有空格
  3. The “data“ option should be a function that returns a per-instance value in component definitions
  4. linux之ls只显示文件或者文件夹
  5. Mockito – JAXB的RETURNS_DEEP_STUBS
  6. 在JAR中打包使用JAR库
  7. 字符串中索引位置是什么意思_女孩子左手中指戴戒指什么意思 不同位置各有不同...
  8. IDEA中集成使用SVN
  9. Hamcrest 测试匹配框架
  10. win10电脑便签怎么换行 电脑便签记事本换行的两种方法
  11. Java进阶-面向对象
  12. GBase 8c产品高级特性介绍
  13. redis切换查询数据库 db0到db3
  14. 字符串是否为空(isEmpty和isBlank的区别)
  15. 2018面试的-5分钟自我介绍建议
  16. 程序员写作云笔记推荐
  17. 网络请求——跨域 的概念
  18. VSCode更换内核
  19. 适合入门的一些现成的人工智能项目
  20. hdu 4411 Arrest【最小费用流】

热门文章

  1. php 之将图片转换base64编码(为百度ocr作准备,解决 image format error)
  2. 阿里巴巴与小毛驴的故事——贪心算法
  3. golang 编译 执行时候报错cannot declare name db.Query
  4. 光盘安装 windowns 10 系统 与 Win10 英文系统修改成中文系统
  5. java截取utf8字符串_java中常用的字符串的截取方法
  6. 操作系统核心原理-4.线程原理(上):线程基础与线程同步
  7. [蓝桥杯]PREV-12.历届试题_危险系数
  8. assert.notDeepEqual()
  9. NSObject的hash方法
  10. base64编码的图片字节流存入html页面中的显示