数字证书算法
『壹』 数字证书的原理是什么
一、数字证书的原理:
数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
数字证书的作用
数字证书可用于发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动。数字证书的格式一般采用X.509国际标准。
二、数字证书的功能
信息保密性
交易中的商务信息均有保密的要求。如信用卡的帐号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。而CA中心颁发的数字安全证书保证了电子商务的信息传播中信息的保密。
身份确定性
网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,对商家要考虑 客户端不能是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。而CA中心颁发的电子签名可保证网上交易双方的身份,银行和信用卡公司可以通过CA认证确认身份,放心的开展网上业务。
不可否认性
由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金, 订货时金价较低,但收到订单后,金价上涨了,如收单方能否认受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此CA中心颁发的数字安全证书确保了电子交易通信过程的各个环节的不可否认性,使交易双方的利益不受到损害。
不可篡改性
交易的文件是不可被修改的,如上例所举的订购黄金。供货单位在收到订单后,发现金价大幅上涨了,如其能改动文件内容,将订购数1吨改为1克,则可大幅受益,那么订货单位可能就会因此而蒙受损失。 因此CA中心颁发的数字安全证书也确保了电子交易文件的不可修改性,以保障交易的严肃和公正。
『贰』 TLS/SSL数字证书里的指纹算法、签名算法和签名哈希算法各是做什么用的
你好!
签名哈希算法:签名之前对证书主体部分进行哈希的算法,它和签名算专法结合,是签名及认证属的一部分。
指纹算法:是对签名之后的证书文件计算一下散列值,只是用于检测证书是否被篡改,类似于去网站下载一个安装包,严谨一点的网站会给一个MD5的值,便于你下载之后再MD5一下核对。
证书指纹何时用到?举个例子,在导入某CA根证书或证书链时,会去该CA官方网站下载相关证书,下载好了之后可以手工检查一下指纹,确认无误再导入。
『叁』 数字证书的基本原理和类型
一、数字证书的原理:
数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
数字证书的作用
数字证书可用于发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动。数字证书的格式一般采用X.509国际标准。
二、数字证书的功能
信息保密性
交易中的商务信息均有保密的要求。如信用卡的帐号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。而CA中心颁发的数字安全证书保证了电子商务的信息传播中信息的保密。
身份确定性
网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,对商家要考虑
客户端不能是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。而CA中心颁发的电子签名可保证网上交易双方的身份,银行和信用卡公司可以通过CA认证确认身份,放心的开展网上业务。
不可否认性
由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金,
订货时金价较低,但收到订单后,金价上涨了,如收单方能否认受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此CA中心颁发的数字安全证书确保了电子交易通信过程的各个环节的不可否认性,使交易双方的利益不受到损害。
不可篡改性
交易的文件是不可被修改的,如上例所举的订购黄金。供货单位在收到订单后,发现金价大幅上涨了,如其能改动文件内容,将订购数1吨改为1克,则可大幅受益,那么订货单位可能就会因此而蒙受损失。
因此CA中心颁发的数字安全证书也确保了电子交易文件的不可修改性,以保障交易的严肃和公正。
『肆』 数字证书的工作原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按当下计算机技术水平,要破解1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥进行解密。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。
保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
『伍』 数字证书的基本原理是什么
egates问的是数字证书,而非数字签名,这两者经常相关联,但不是一个概念。
数字证书是数字形式的标识,与护照或驾驶员执照十分相似。数字证书是数字凭据,它提供有关实体标识的信息以及其他支持信息。数字证书是由成为证书颁发机构(CA)的权威机构颁发的。由于数字证书有证书权威机构颁发,因此由该权威机构担保证书信息的有效性。此外,数字证书只在特定的时间段内有效。
数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。
至于这个公钥有何用则属于另一个主题:公钥加密。也解释一下吧。
公钥加密属于“非对称密钥”加密,为了解释得更清楚,先说下“对称密钥”加密。
举个例子,如果发件人希望加密邮件,那么发件人需要知道纯文本中的字母 A 的每个实例都将被密钥更改为密码中的字母 D;纯文本中的字母 B 的每个实例都将更改为密码中的字母 E,依此类推。使用此密钥(采用“将字母前移三位”的算法),纯文本中的单词“help”将加密为“khos”密码。
当收件人收到密码邮件时,需要将它重新转换为纯文本,方法是使用密钥来解密信息,在本例中即是将字母后移三位,从而撤消更改。
在本例中,发件人和收件人必须将密钥保存在隐秘的地方,因为任何知道密钥的人都可以使用它来解密并阅读邮件。密钥丢失会使得加密变得毫无价值。此外,算法的强度也很重要。未经授权的一方可以获取加密后的密码,并通过根据密码来确定密钥的方法,设法破解加密。
请注意,发件人和收件人使用的是相同的密钥。此类加密称为“对称密钥”加密,因为双方使用相同的密钥。
注意这个示例中,算法强度相当小。
我们所说的“公钥加密”是使用两个密钥,而不是使用一个共享的密钥。一个密钥(称为“私钥”)是保密的。它只能由一方保存,而不能各方共享。第二个密钥(称为“公钥”)不是保密的,可以广泛共享。这两个密钥(称为“密钥对”)在加密和解密操作中配合使用。密钥对具有特殊的互补关系,从而使每个密钥都只能与密钥对中的另一个密钥配合使用。这一关系将密钥对中的密钥彼此唯一地联系在一起:公钥与其对应的私钥组成一对,并且与其他任何密钥都不关联。
由于公钥和私钥的算法之间存在特殊的数学关系,从而使得这种配对成为可能。密钥对在数学上彼此相关,例如,配合使用密钥对可以实现两次使用对称密钥的效果。密钥必须配合使用:不能使用每个单独的密钥来撤消它自己的操作。这意味着每个单独密钥的操作都是单向操作:不能使用一个密钥来撤消它的操作。此外,设计两个密钥使用的算法时,特意设计无法使用一个密钥确定密钥对中的另一个密钥。因此,不能根据公钥确定出私钥。但是,使得密钥对成为可能的数学原理也使得密钥对具有对称密钥所不具有的一个缺点。这就是,所使用的算法必须足够强大,才能使人们无法通过强行尝试,使用已知的公钥来解密通过它加密的信息。公钥利用数学复杂性以及它的单向特性来弥补它是众所周知的这样一个事实,以防止人们成功地破解使用它编码的信息。
如果将此概念应用于前面的示例,则发件人将使用公钥将纯文本加密成密码。然后,收件人将使用私钥将密码重新解密成纯文本。
由于密钥对中的私钥和公钥之间所存在的特殊关系,因此一个人可以在与许多人交往时使用相同的密钥对,而不必与每个人分别使用不同的密钥。只要私钥是保密的,就可以随意分发公钥,并让人们放心地使用它。使许多人使用同一个密钥对代表着密码学上的一个重大突破,因为它显著降低了密钥管理的需求,大大提高了密码学的可用性。用户可以与任意数目的人员共享一个密钥对,而不必为每个人单独设立一个密钥。
(等待3点的球赛,无聊中)
『陆』 目前的数字认证和加密算法的主要技术及其应用
1. 什么是数字证书?
数字证书就是网络通讯中标志通讯各方身份信息的一系列数据,其作用类似于现实生活中的身份证。它是由一个权威机构发行的,人们可以在交往中用它来识别对方的身份。
最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。
一个标准的X.509数字证书包含以下一些内容:
证书的版本信息;
证书的序列号,每个证书都有一个唯一的证书序列号;
证书所使用的签名算法;
证书的发行机构名称,命名规则一般采用X.500格式;
证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
证书所有人的名称,命名规则一般采用X.500格式;
证书所有人的公开密钥;
证书发行者对证书的签名。
使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。
2. 为什么要使用数字证书?
由于Internet网电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。买方和卖方都必须保证在因特网上进行的一切金融交易运作都是真实可靠的,并且要使顾客、商家和企业等交易各方都具有绝对的信心,因而因特网电子商务系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四大要素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性。
信息的保密性
交易中的商务信息均有保密的要求,如信用卡的帐号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。
交易者身份的确定性
网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,商家要考虑客户端是不是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款问题以及确认订货和订货收据信息等。
不可否认性
由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
不可修改性
由于商情的千变万化,交易一旦达成应该是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其它还包括对称密钥加密、数字签名、数字信封等技术。
我们可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。
3. 数字认证原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。
在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私有密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送以商户,然后由商户用自己的私有密钥进行解密。
如果用户需要发送加密数据,发送方需要使用接收方的数字证书(公开密钥)对数据进行加密,而接收方则使用自己的私有密钥进行解密,从而保证数据的安全保密性。
另外,用户可以通过数字签名实现数据的完整性和有效性,只需采用私有密钥对数据进行加密处理,由于私有密钥仅为用户个人拥有,从而能够签名文件的唯一性,即保证:数据由签名者自己签名发送,签名者不能否认或难以否认;数据自签发到接收这段过程中未曾作过任何修改,签发的文件是真实的。
4. 数字证书是如何颁发的?
数字证书是由认证中心颁发的。根证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。
认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的,认证中心必须公布其公共密钥或由更高级别的认证中心提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别认证中心的出现。
数字证书颁发过程如下:用户产生了自己的密钥对,并将公共密钥及部分个人身份信息传送给一家认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内附了用户和他的密钥等信息,同时还附有对认证中心公共密钥加以确认的数字证书。当用户想证明其公开密钥的合法性时,就可以提供这一数字证书。
5. 加密技术
由于数据在传输过程中有可能遭到侵犯者的窃听而失去保密信息,加密技术是电子商务采取的主要保密安全措施,是最常用的保密安全手段。加密技术也就是利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。
加密包括两个元素:算法和密钥。一个加密算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤。密钥和算法对加密同等重要。
密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制,来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。
相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DES,Data Encryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Ad1eman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密。
『柒』 x.509数字证书中"签名算法"和"微缩图算法"有什么区别
数字证书基本概念
(1)什么是证书?
在一个电子商务系统中,所有参与活动的实体都必须用证书来表明自己的身份。证书一方面可以用来向系统中的其它实体证明自己的身份(每份证书都是经“相对权威的机构”签名的),另一方面由于每份证书都携带着证书持有者的公钥(签名证书携带的是签名公钥,密钥加密证书携带的是密钥加密公钥),所以,证书也可以向接收者证实某人或某个机构对公开密钥的拥有,同时也起着公钥分发的作用。
(2)什么是CA?
CA是Certificate Authority的缩写,是证书授权的意思。在电子商务系统中,所有实体的证书都是由证书授权中心既CA中心分发并签名的。一个完整、安全的电子商务系统必须建立起一个完整、合理的CA体系。CA体系由证书审批部门和证书操作部门组成。
(3)什么是SSL?
安全套接层协议(SSL,Security Socket Layer)是网景(Netscape)公司提出的基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性,主要采用公开密钥体制和X.509数字证书技术来提供安全性保证。对于电子商务应用来说, SSL可保证信息的真实性、完整性和保密性。但由于SSL不对应用层的消息进行数字签名,因此不能提供交易的不可否认性,这是SSL在电子商务中使用的最大不足。有鉴于此,网景公司在从Communicator 4.04版开始的所有浏览器中引入了一种被称作"表单签名(Form Signing)"的功能,在电子商务中,可利用这一功能来对包含购买者的订购信息和付款指令的表单进行数字签名,从而保证交易信息的不可否认性。
(4)什么是RA?
RA即证书发放审核部门,它是CA系统的一个功能组件。它负责对证书申请者进行资格审查,并决定是否同意给该申请者发放证书,并承担因审核错误引起的、为不满足资格的证书申请者发放证书所引起的一切后果,因此它应由能够承担这些责任的机构担任。
(5)什么是CP?
CP即证书发放的操作部门,它是CA系统的一个功能组件,负责为已授权的申请者制作、发放和管理证书,并承担因操作运营错误所产生的一切后果,包括失密和为没有获得授权者发放证书等,它可以由审核授权部门自己担任,也可委托给第三方担任。
(6)什么是CRL?
CRL是证书作废表的缩写。CRL中记录尚未过期但已声明作废的用户证书序列号,供证书使用者在认证对方证书时查询使用。CRL通常被称为证书黑名单。
(7)什么是OCSP?
OCSP即在线证书状态查询(Online Certificate Status Protocol),使用户可以实时查询证书的作废状态。
(8)什么是密钥对,怎样使用它,怎样获得密钥对?
像有的加密技术中采用相同的密钥加密、解密数据,公共密钥加密技术采用一对匹配的密钥进行加密、解密。每把密钥执行一种对数据的单向处理,每把的功能恰恰与另一把相反,一把用于加密时,则另一把就用于解密。
公共密钥是由其主人加以公开的,而私人密钥必须保密存放。为发送一份保密报文,发送者必须使用接照叩墓
『捌』 RSA算法+数字证书怎么实现授权管理功能
授权管理就是让每一个用户拥有自己应有的访问权限,实现授权管理不是很复杂,就是将用户的网卡地址在DHCP服务器上绑定一个IP地址,再给这个IP地址授权。
『玖』 如何获取数字证书(x509Certificate)中的指纹算法
创建X509证书方法较多,在Windows 环境下大致总结了几中办法,
1) 通过CA获取证书,
2) 通过微软提供的makecert 工具得到测试证书
3) 编程的方法创建,.Net提供了 X509Certificate2 类,该类可以用于创建证书,但只能从RawData中创建,创建后无法修改除FriendlyName以外的任何属性。
我在互联网上找了很久,始终没有找到完全通过程序创建自定义的证书的方法。后来想了一个折中办法,就是用程序调用 makecert.exe 先生成一个证书,证书的一些参数如Subject,有效期,序列号等可以通过参数传入,然后把生成的证书文件读到Rawdata中,得到X509Certificate2 类型的证书对象。当然这种方法确实比较笨,必须要依赖外部进程。等后面有时间的话,我还是想按照X509 V3 标准,自己创建RawData,然后生成证书,这样应该是比较灵活的做法。不知道网友们有没有什么更好的方法来创建一个自定义的证书。
通过 makecert.exe 创建X509证书的代码如下,供大家参考
static object semObj = new object();
/// <summary>
/// 自定义的证书信息
/// </summary>
public class T_CertInfo
{
public String FriendlyName;
public String Subject;
public DateTime BeginDate;
public DateTime EndDate;
public int SerialNumber;
}
/// <summary>
/// 生成X509证书
/// </summary>
/// <param name="makecrtPath">makecert进程的目录</param>
/// <param name="crtPath">证书文件临时目录</param>
/// <param name="certInfo">证书信息</param>
/// <returns></returns>
public static X509Certificate2 CreateCertificate(String makecrtPath, String crtPath,
T_CertInfo certInfo)
{
Debug.Assert(certInfo != null);
Debug.Assert(certInfo.Subject != null);
string MakeCert = makecrtPath + "makecert.exe";
string fileName = crtPath + "cer";
string userName = Guid.NewGuid().ToString();
StringBuilder arguments = new StringBuilder();
arguments.AppendFormat("-r -n \"{0}\" -ss my -sr currentuser -sky exchange ",
certInfo.Subject);
if (certInfo.SerialNumber > 0)
{
arguments.AppendFormat("-# {0} ", certInfo.SerialNumber);
}
arguments.AppendFormat("-b {0} ", certInfo.BeginDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("-e {0} ", certInfo.EndDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("\"{0}\"", fileName);
『拾』 6. 目前主流的数字证书采用的签名算法是什么
一般是采用sha1或sha256算法进行加密,采用RSA作为密钥交换机制。