解析的结构和代码:

X509CertificateSubstring

#region 文件描述// 描述:数字签名的Substring结构类
// 作者:鲍昊晟
// 时间:2012-7-2#endregion#region 类修改记录 : 每次修改一组描述// 修改描述:
// 修 改 人:
// 修改时间:#endregionusing System;
using System.Security.Cryptography.X509Certificates;namespace DTLEntAdministration.Common
{/// <summary>/// 数字签名的Substring结构/// </summary>public class X509CertificateSubstring{//CN=Shenzhen DriveTheLife Software Technology Co.Ltd, OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Shenzhen DriveTheLife Software Technology Co.Ltd, L=Shenzhen, S=Guangdong, C=CN#region 私有字段private string _CN = string.Empty;private string _OU = string.Empty;private string _O = string.Empty;private string _L = string.Empty;private string _S = string.Empty;private string _C = string.Empty;#endregion#region 公共只读属性public string CN { get { return _CN; } }public string OU { get { return _OU; } }public string O { get { return _O; } }public string L { get { return _L; } }public string S { get { return _S; } }public string C { get { return _C; } }#endregionpublic X509CertificateSubstring() { }/// <summary>/// 将Substring字符串解析成结构体/// </summary>/// <param name="substring">Substring字符串</param>/// <returns>X509CertificateSubstring</returns>public static X509CertificateSubstring Parse(string substring){X509CertificateSubstring xcs = new X509CertificateSubstring();string[] items = substring.Split(',');foreach (var item in items){if (item.Trim().StartsWith("CN=")){xcs._CN = item.Trim().Substring(3); continue;}if (item.Trim().StartsWith("OU=")){xcs._OU = item.Trim().Substring(3); continue;}if (item.Trim().StartsWith("O=")){xcs._O = item.Trim().Substring(2); continue;}if (item.Trim().StartsWith("L=")){xcs._L = item.Trim().Substring(2); continue;}if (item.Trim().StartsWith("S=")){xcs._S = item.Trim().Substring(2); continue;}if (item.Trim().StartsWith("C=")){xcs._C = item.Trim().Substring(2); continue;}}return xcs;}/// <summary>/// 将Substring字符串解析成结构体,并返回数字签名存在与否/// </summary>/// <param name="pyFile">读取数字签名的文件的物理路径</param>/// <param name="xcs">X509CertificateSubstring</param>/// <returns>bool</returns>public static bool TryParse(string pyFile, out X509CertificateSubstring xcs){bool result = true;xcs = new X509CertificateSubstring();string SubstringCN = string.Empty;X509Certificate cert = null;try{cert = X509Certificate2.CreateFromSignedFile(pyFile);}catch (System.Security.Cryptography.CryptographicException ce){//没有数字签名,忽略此异常.result = false;}catch (Exception ex){result = false;throw ex;}if (cert != null){xcs = X509CertificateSubstring.Parse(cert.Subject);}return result;}}
}

调用的示例代码:

获取数字签名的名称

        /// <summary>/// 获取数字签名的名称/// </summary>/// <param name="pyFile">读取数字签名的文件的物理路径</param>/// <returns>数字签名,如果没有数字签名则返回空字符串</returns>public static string GetX509CertificateSubstringCN(string pyFile){string SubstringCN = string.Empty;X509CertificateSubstring xcs;if (X509CertificateSubstring.TryParse(pyFile, out xcs)){SubstringCN = xcs.CN;}return SubstringCN;}

转载于:https://www.cnblogs.com/lucienbao/archive/2012/07/02/X509Certificate_Substring.html

解析数字签名的Substring结构相关推荐

  1. C/C++ sizeof函数解析——解决sizeof求结构体大小的问题

    C/C++ sizeof函数解析--解决sizeof求结构体大小的问题 参考文章: (1)C/C++ sizeof函数解析--解决sizeof求结构体大小的问题 (2)https://www.cnbl ...

  2. 使用递归算法结合数据库解析成java树形结构

    使用递归算法结合数据库解析成java树形结构 1.准备表结构及对应的表数据 a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCH ...

  3. java 树状数据算法_使用递归算法结合数据库解析成Java树形结构的代码解析

    这篇文章主要介绍了使用递归算法结合数据库解析成Java树形结构的代码解析的相关资料,需要的朋友可以参考下 1.准备表结构及对应的表数据 a.表结构:create table TB_TREE ( CID ...

  4. YOLOv3:Darknet代码解析(四)结构更改与训练

    背景:我们需要降低YOLOv2-tiny的参数量和存储量,以便硬件实现. 目的:更改YOLO结构,去掉后面的两层卷积层,降低参数量和运算量. 相关文章: YOLOv3:Darknet代码解析(一)安装 ...

  5. Carson带你学JVM:图文解析Java虚拟机内存结构

    前言 了解Java中的对象.变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 Carson带你学JVM系列文章,具体如下: Carson带你学J ...

  6. 基于Linux内核红黑树的TR069参数解析工具:树形结构+CPE RPC支持

    目录 tr069_oid.h tr069_oid.c demo.c tr069_oid.h /* Dependencies -------------------------------------- ...

  7. [网站建设] 深度解析搜索引擎的原理结构

    搜索引擎(searchengine)也可以说是指根据一定的策略.运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统.搜索引擎包括 ...

  8. 数据结构与算法详细解析之双链表结构解析

    一.双向链表结构分析及其特点: 双链表结构:双向链表中每一个Node节点含Data域及pre指针(指向上一个节点).Next指针(指向下一个节点): 特点: 1)双向链表可以双向查找(向前或者向后查找 ...

  9. 一文解析JVM的内存结构,身为程序员还不弄懂JVM怎么行

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦.微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 前言 Jvm的内存结构是由<jav ...

最新文章

  1. 自定义Sharepoint的登陆页面(2)
  2. idea中git打tag(亲测)
  3. PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...
  4. [NewLife.XCode]脏数据
  5. Sigmoid函数与Softmax函数的区别与联系
  6. easyexcel 日期类型 convert_[Oracle 专题] SQL 日期、数字、字符串,运算、转换
  7. C++ Windows时间函数 QueryPerformanceCounter()与QueryPerformanceFrequency()
  8. Android动态生成答题卡,好分数怎样制作答题卡
  9. xml:使用xmlspy创建xml文件,且通过xml文件生成对应的dtd文件
  10. python调用virustota接口api实现上传文件返回查毒结果
  11. 程序员必备的11个辅助开发的软件神器(欢迎补充)
  12. 电竞LOL数据API接口 - 【赛事列表数据】API调用示例代码
  13. 怎么把PDF转换成图片?这几种转换方法都可以做到
  14. 跨域的这三种解决方案你知道吗?
  15. 如何保障云上数据安全?一文详解云原生全链路加密
  16. 添加了validaterequest=false 为什么还是报错
  17. Legolas工业自动化平台入门(一)搭建应用
  18. 阅文市值腰斩后一直未翻身,网络文学是真繁荣还是假昌盛?
  19. 2019ICPC上海网络赛A 边分治+线段树
  20. 学霸创业团队的崛起:以大数据重塑K12在线教育

热门文章

  1. cad坐标归零lisp_Z轴归零源码说明 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  2. Android 基础视频学习笔记 1 (完结)
  3. 甜蜜蜜 (10 分)
  4. 安装计算机一级出现appcrash,appcrash,详细教您运行程序出现appcrash错误该如何解决...
  5. 【株洲出差】回记人生第一次出差之旅
  6. 清华大学出版——C语言从入门到精通(第4版)
  7. 不二越机器人编程手册_NACHI机器人说明书.doc
  8. ORACLE数据库 自动备份 定时计划任务 windows
  9. Eclipse安装最新SVN插件
  10. 全新UI简洁H5商城网站源码/带易支付接口