❶ 如何用java实现asn1编解码..急急急急急急急急急!!!
byte[] content=contentStr.getBytes("asn1"); //如果asn1是一种编码,这就是将字符串转换成asn1的二进制
❷ asn1primitive.java在哪个包里面
java没有utils这个类,除非是同事写的,没有告诉自己,所以找不到
不过java有 java.util这个package。
包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
❸ asn.1 editor使用方法
免费软件不用注册直接使用,简单实用。 AVS Video Editor 是一款超强的视频编辑、媒体剪辑软件,可以将影片、图片、 声...
❹ ASN.1解码
ASN.1:
高级数据描述语言,描述数据类型、结构、组织及编码方法。包含语法符号和编码规则两大部分。SNMP使用ASN.1描述协议数据单元(PDU)和管理对象信息库(MIB);
BER:
是ASN.1中的基本编码规则。描述具体的ASN.1对象如何编码成比特流在网络上进行传输。SNMP使用BER作为编码方案,数据首先经过BER编码,再经由传输层协议(一般是UDP)发送往接收方。接收方在SNMP端口收到PDU后,经过BER解码后,得到具体的SNMP操作数据。
SMI
是SNMP的描述方法。ASN.1功能很强大,但SNMP只用到其中一小部分,为了方便使用,对这部分内容做了描述,限定了范围,这就是SMI。SMI由ASN.1的一个子集合和一部分自定义的类型、宏等组成。SMI是ASN.1的一个子集和超集。
MIB:
使用SMI中定义的类型和ASN.1中的基本类型进行对象描述,是一个使用SMI描述的管理信息库。每一类关心的事件都有一组MIB,比如网络接口有一棵MIB树,TCP有一棵MIB树,UDP也有一棵状态树。定义了数据格式、类型、顺序、意义等;
PDU
是网络中传送的数据包,SNMP的协议数据单元。每一种SNMP操作物理上都对应一个PDU。PDU是基本的通信格式,使用ASN.1描述,使用BER编码,通过传书层协议传送;
❺ 安装补丁时弹出 ASN1异常的数据结尾
可能是补丁下载不完全。在360安装目录下的的hotfix文件夹里 ,删除已经下载的补丁包,点击360扫描的漏洞后,360右侧显示的详细信息里,有此补丁的下载链接,建议手动使用迅雷等下载工具下载安装,是否成功!
❻ asn.1编译器的商业用途有哪些主要运用于哪些行业
主要运用于通信行业,通信数据结构的编解码规则很多是用到了ASN.1的编解码规则,
❼ 数字证书包括哪些内容
问题一:什么是数字证书?数字证书中包含哪些内容? 数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日埂生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。
问题二:数字证书包含什么 数字证书使用对象的角度分,目前的数字证书类型主要包括:个人身份证书、 企业或机构身份证书 、 支付网关证书 、服务器证书、企业或机构代码签名证书、 安全电子邮件证书 、 个人代码签名证书 。 个人身份证书 符合 X.509 标准的数字安全证书,证书中包含个人身份信息和个人的公钥,用于标识证书持有人的个人身份。数字安全证书和对应的私钥存储于 E-key 中,用于个人在网上进行合同签定、定单、录入审核、操作权限、支付信息等活动中标明身份。 企业或机构身份证书 符合 X.509 标准的数字安全证书,证书中包含企业信息和企业的公钥,用于标识证书持有企业的身份。数字安全证书和对应的私钥存储于 E-key 或 IC 卡中,可以用于企业在电子商务方面的对外活动,如合同签定、网上证券交易、交易支付信息等方面。 支付网关证书 支付网关证书是证书签发中心针对支付网关签发的数字证书,是支付网关实现数据加解密的主要工具,用于数字签名和信息加密。支付网关证书仅用于支付网关提供的服务(Internet 上各种安全协议与银行现有网络数据格式的转换)。 支付网关证书只能在有效状态下使用。 支付网关证书不可被申请者转让。 服务器证书 符合 X.509 标准的数字安全证书,证书中包含服务器信息和服务器的公钥,在网络通讯中用于标识和验证服务器的身份。数字安全证书和对应的私钥存储于 E-key 中。服务器软件利用证书机制保证与其他服务器或客户端通信时双方身份的真实性、安全性、可信任度等。 企业或机构代码签名证书 代码签名证书是 CA 中心签发给软件提供商的数字证书,包含软件提供商的身份信息、公钥及 CA 的签名。软件提供商使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,从而可以确信:软件的来源;软件自签名后到下载前,没有遭到修改或破坏。 代码签名证书可以对 32-bit .exe 、 .cab 、 .ocx 、 .class 等程序和文件 进行签名。 安全电子邮件证书 符合 X.509 标准的数字安全证书,通过 IE 或 Netscape 申请,用 IE 申请的证书存储于 WINDOWS 的注册表中,用 NETSCAPE 申请的存储于个人用户目录下的文件中。用于安全电子邮件或向需要客户验证的 WEB 服务器( 服务) 表明身份。 个人代码签名证书 个人代码签名证书是 CA 中心签发给软件提供人的数字证书,包含软件提供个人的身份信息、公钥及 CA 的签名。软件提供人使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,从而可以确信:软件的来源;软件自签名后到下载前,没有遭到修改或破坏。 代码签名证书可以对 32-bit .exe 、 .cab 、 .ocx 、 .class 等程序和文件进行签名。 从数字证书的技术角度分,CA中心发放的证书分为两类:SSL证书和SET证书。一般地说,SSL(安全套接层)证书是服务于银行对企业或企业对企业的电子商务活动的;而SET(安全电子交易)证书则服务于持卡消费、网上购物。虽然它们都是用于识别身份和数字签名的证书,但它们的信任体系完全不同,而且所符合的标准也不一样。简单地说,SSL证书的作用是通过公开密钥证明持证人的身份。而SET证书的作用则......>>
问题三:数字证书包含内容 此信息用途很多。例如,如果某一证书被撤消,其序列号将放到证书撤消清单 (CRL) 中。 签名算法标识符 用于识别 CA 签写证书时所用的算法。 签发人姓名签写证书的实体的 X.500 名称。它通常为一个 CA。 使用该证书意味着信任签写该证书的实体(注意:有些情况下(例如根或顶层 CA 证书),签发人会签写自己的证书)。 有效期每个证书均只能在一个有限的时间段内有效。该有效期以起始日期和时间及终止日期和时间表示,可以短至几秒或长至一世纪。所选有效期取决于许多因素,例如用于签写证书的私钥的使用频率及愿为证书支付的金钱等。它是在没有危及相关私钥的条件下,实体可以依赖公钥值的预计时间。 主体名证书可以识别其公钥的实体名。此名称使用 X.500 标准,因此在Internet中应是唯一的。它是实体的特征名 (DN),例如, CN=Java Duke,OU=Java Software Division,O=Sun Microsystems Inc,C=US (这些指主体的通用名、组织单位、组织和国家)。 主体公钥信息 这是被命名实体的公钥,同时包括指定该密钥所属公钥密码系统的算法标识符及所有相关的密钥参数。 X.509 1 版自 1988 年起有售,已得到广泛使用,是最常用的版本。 X.509 2 版引入了主体和签发人唯一标识符的概念,以解决主体和/或签发人名称在一段时间后可能重复使用的问题。大多数证书监视文档都极力建议不要重复使用主体或签发人名称,而且建议证书不要使用唯一标识符。版本 2 证书尚未得到广泛使用。 X.509 3 版是最新的版本(1996 年)。它支持扩展的概念,因此任何人均可定义扩展并将其纳入证书中。现在常用的扩展包括:KeyUsage(仅限密钥用于特殊目的,例如“只签”)和 AlternativeNames(允许其它标识与该公钥关联,例如 DNS 名、电子邮件地址、IP 地址)。扩展可标记为“极重要”,以表示应选中该扩展并强制执行或使用。例如,如果某一证书将 KeyUsage 扩展标记为“极重要”,而且设置为“keyCertSign”,则在 SSL 通信期间该证书出现时将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 SSL。 证书中的所有数据均用两个名为 ASN.1/DER 的相关标准进行编码。抽象语法注释 1 (Abstract Syntax Notation 1) 对数据进行描述。确定性编码规则 (DER) 描述储存和传输数据的唯一方式。既有人称这一组合“强大而灵活”,也有人称之为“含混而笨拙”。
问题四:什么是数字证书?它的主要内容有哪些 摘录网上资料:数字证书数字证书是网络通讯中标志通讯各方身份信息的一系列数据, 提供了一种在Internet上验证您身份的方式,其作用类似于司机 的驾驶执照或日常生活中的身份证。它是一个由权威机构--CA机 构,又称为证书授权(Certificate Authority)中心发行的,人们 可以在交往中用它来识别对方的身份。 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有 者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称 以及证书授权中心的数字签名。
问题五:什么是数字证书?数字证书有哪些类型 这就要求参加电子商务的买方和卖方都必须拥有合法的身份,并且在网上能够有效无误的被进行验证。数字证书是一种权威性的电子文档。它提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构----CA证书授权(Certificate Authority)中心发行的,人们可以在互联网交往中用它来识别对方的身份。当然在数字证书认证的过程中,证书认证中心(CA)作为权威的、公正的、可信赖的第三方,其作用是至关重要的。数字证书也必须具有唯一性和可靠性。为了达到这一目的,需要采用很多技术来实现。通常,数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所有的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。公开密钥技术解决了密钥发布的管理问题,用户可以公开其公开密钥,而保留其私有密钥。一个数字证书的内容一般包括:所有者的公钥所有者的名字公钥的失效期发放机构的名称(发放数字证书的 CA)数字证书的序列号发放机构的数字签名被广泛接受的数字证书格式由 CCITT X.509 国际标准定义;因此任何符合 X.509 的应用程序都可读写证书。在 PKCS 标准和 PEM 标准中有更进一步的明确表达。数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度。可以从证书发行机构获得您自己的数字证书。目前的数字证书类型主要包括:个人数字证书、单位数字证书、单位员工数字证书、服务器证书、VPN证书、WAP证书、代码签名证书和表单签名证书。作用用来在网络通讯中识别通讯各方的身份,并保证网络安全的四大要素保密性完整性真实性不可否定性
问题六:什么叫数字证书 ? 数字证书
数字证书在网络上类似于人在社会上持有的身份证等证件,用来在网络上证明数字证书持有者的身份。数字证书持有者可能是现实社会中的自然人、法人,也可能是网络设备。数字证书可以简单理解为“网络身份证”,用来在网络上证明自己的身份。
数字证书与身份证都是由专门的机构来签发。身份证通常由公安局来签发,上面盖有签发单位的公章。而受电子签名法保护的数字证书则是由国家许可的第三方数字认证中心(简称CA中心),例如获得信息产业部审批资质的天威诚信数字认证中心来签发数字证书上面有CA中心的电子签名,以证明数字证书的有效性。根据国家相关部门的许可授权建立的数字认证中心,在Internet上具有公信力,用它签发的数字证书所签署的电子合同、电子订单等电子文书具有法律效力。
数字证书上面主要包括以下信息:证书版本号、证书持有者信息、证书签发者(CA)信息、证书起止有效期、证书序列号、证书签发者的签名等。这些信息与身份证类似。证书签发者对数字证书的签名可以起到对数字证书本身的防伪作用,这与身份证上的公章类似。但CA中心对证书的数字签名是不可能被伪造的。
基于数字证书的应用角度分类,数字证书可以分为以下几种:
? 服务器证书
服务器证书被安装于服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防止假冒站点。
在服务器上安装服务器证书后,客户端浏览器可以与服务器证书建立SSL连接,在SSL连接上传输的任何数据都会被加密。同时,浏览器会自动验证服务器证书是否有效,验证所访问的站点是否是假冒站点,服务器证书保护的站点多被用来进行密码登录、订单处理、网上银行交易等。全球最为知名的服务器证书品牌是verisign.其服务器证书编制起来的可信网络已覆盖全球,目前该公司已通过联合国内数字认证企业如天威诚信开展中国区服务
? 电子邮件证书
电子邮件证书可以用来证明电子邮件发件人的真实性。它并不证明数字证书上面CN一项所标识的证书所有者姓名的真实性,它只证明邮件地址的真实性。
收到具有有效电子签名的电子邮件,我们除了能相信邮件确实由指定邮箱发出外,还可以确信该邮件从被发出后没有被篡改过。
另外,使用接收的邮件证书,我们还可以向接收方发送加密邮件。该加密邮件可以在非安全网络传输,只有接收方的持有者才可能打开该邮件。
? 客户端个人证书
客户端证书主要被用来进行身份验证和电子签名。
安全的客户端证书我被存储于专用的u *** key中。存储于key中的证书不能被导出或复制,且key使用时需要输入key的保护密码。使用该证书需要物理上获得其存储介质u *** key,且需要知道key的保护密码,这也被称为双因子认证。这种认证手段是目前在internet最安全的身份认证手段之一。
问题七:数字证书都有什么类型啊? GlobalSign 自 1996 年起开始颁发可信赖的数字证书,提供互联网环境中的公众信任服务。
数字证书类型,GlobalSign 为您分析:
从数字签名使用对象的角度分,目前的数字证书类型主要包括:个人身份证书、企业或机构身份证书、支付网关证书、服务器证书、安全电子邮件证书、个人代码签名证书。这些数字证书特点各有不同。
从数字证书的技术角度分,CA中心发放的证书分为两类:SSL证书和SET证书。一般地说,SSL 证书(安全套接层)是服务于银行对企业或企业对企业的电子商务活动的;而SET(安全电子交易)证书则服务于持卡消费、网上购物。虽然它们都是用于识别身份和数字签名的证书,但它们的信任体系完全不同,而且所符合的标准也不一样。简单地说,SSL数字证书的功能作用是通过公开密钥证明持证人的身份。而 SET 证书的作用则是,通过公开密钥证明持证人在指定银行确实拥有该信用卡账号,同时也证明了持证人的身份。
下面主要从对象角度说明:
1)个人身份证书 符合 X.509 标准的数字安全证书,证书中包含个人身份信息和个人的公钥,用于标识证书持有人的个人身份。数字安全证书和对应的私钥存储于 E-key 中,用于个人在网上进行合同签定、定单、录入审核、操作权限、支付信息等活动中标明身份。
2)企业或机构身份证书 符合 X.509 标准的数字安全证书,证书中包含企业信息和企业的公钥,用于标识证书持有企业的身份。数字安全证书和对应的私钥存储于 E-key 或 IC 卡中,可以用于企业在电子商务方面的对外活动,如合同签定、网上证券交易、交易支付信息等方面。
3)支付网关证书? 支付网关证书是证书签发中心针对支付网关签发的数字证书,是支付网关实现数据加解密的主要工具,用于数字签名和信息加密。支付网关证书仅用于支付网关提供的服务(Internet 上各种安全协议与银行现有网络数据格式的转换)。支付网关证书只能在有效状态下使用。支付网关证书不可被申请者转让。
4)服务器证书 符合 X.509 标准的数字安全证书,证书中包含服务器信息和服务器的公钥,在网络通讯中用于标识和验证服务器的身份。数字安全证书和对应的私钥存储于 E-key 中。服务器软件利用证书机制保证与其他服务器或客户端通信时双方身份的真实性、安全性、可信任度等。
5)企业或机构代码签名证书 代码签名证书是 CA 中心签发给软件提供商的数字证书,包含软件提供商的身份信息、公钥及 CA 的签名。软件提供商使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,从而可以确信:软件的来源;软件自签名后到下载前,没有遭到修改或破坏。代码签名证书可以对 32-bit .exe 、 .cab 、 .ocx 、 .class 等程序和文件 进行签名。
6)安全电子邮件证书 符合 X.509 标准的数字安全证书,通过 IE 或 Netscape 申请,用 IE 申请的证书存储于 WINDOWS 的注册表中,用 NETSCAPE 申请的存储于个人用户目录下的文件中。用于安全电子邮件或向需要客户验证的 WEB 服务器( 服务) 表明身份。
7)个人代码签名证书 个人代码签名证书是 CA 中心签发给软件提供人的数字证书,包含软件提供个人的身份信息、公钥及 CA 的签名。软件提供人使用代码签名证书对软件进行签名后放到 Internet 上,当用户在 Internet 上下载该软件时,将会得到提示,......>>
问题八:简述数字证书的作用 信息的保密性
交易中的商务信息均有保密的要求,如信用卡的帐号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。
交易者身份的确定性
网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,商家要考虑客户端是不是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款问题以及确认订货和订货收据信息等。
不可否认性
由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
不可修改性
由于商情的千变万化,交易一旦达成应该是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其它还包括对称密钥加密、数字签名、数字信封等技术。
问题九:数字证书的作用是什么? 数字证书的工作原理是比较复杂的。简单地讲,结合证书主体的私钥,证书在通信时用来出示给对方,证明自己的身份。证书本身是公开的,谁都可以拿到,但私钥(不是密码)只有持证人自己掌握,永远也不会在网络上传播。
例如:在建行网上银行系统中,有三种证书:建行CA认证中心的根证书、建叮网银中心的服务器证书,每个网上银行用户在浏览器端的客户证书。有了这三个证书,就可以在浏览器与建行网银服务器之间建立起SSL连接。这样,您的浏览器与建行网银服务器之间就有了一个安全的加密信道。您的证书可以使与您通讯的对方验证您的身份(您确实是您所声称的那个您),同样,您也可以用与您通讯的对方的证书验证他的身份(他确实是他所声称的那个他),而这一验证过程是由系统自动完成的。
❽ 一个标准的x.509数字证书包括哪些内容
X.509证书
X.509 标准规定了证书可以包含什么信息,并说明了记录信息的方法(数据格式)。除了签名外,所有 X.509 证书还包含以下数据:
版本
识别用于该证书的 X.509 标准的版本,这可以影响证书中所能指定的信息。迄今为止,已定义的版本有三个。
序列号
发放证书的实体有责任为证书指定序列号,以使其区别于该实体发放的其它证书。此信息用途很多。例如,如果某一证书被撤消,其序列号将放到证书撤消清单 (CRL) 中。
签名算法标识符
用于识别 CA 签写证书时所用的算法。
签发人姓名
签写证书的实体的 X.500 名称。它通常为一个 CA。 使用该证书意味着信任签写该证书的实体(注意:有些情况下(例如根或顶层 CA 证书),签发人会签写自己的证书)。
有效期
每个证书均只能在一个有限的时间段内有效。该有效期以起始日期和时间及终止日期和时间表示,可以短至几秒或长至一世纪。所选有效期取决于许多因素,例如用于签写证书的私钥的使用频率及愿为证书支付的金钱等。它是在没有危及相关私钥的条件下,实体可以依赖公钥值的预计时间。
主体名
证书可以识别其公钥的实体名。此名称使用 X.500 标准,因此在Internet中应是唯一的。它是实体的特征名 (DN),例如,
CN=Java Duke,OU=Java Software Division,O=Sun Microsystems Inc,C=US
(这些指主体的通用名、组织单位、组织和国家)。
主体公钥信息
这是被命名实体的公钥,同时包括指定该密钥所属公钥密码系统的算法标识符及所有相关的密钥参数。
X.509 1 版自 1988 年起有售,已得到广泛使用,是最常用的版本。
X.509 2 版引入了主体和签发人唯一标识符的概念,以解决主体和/或签发人名称在一段时间后可能重复使用的问题。大多数证书监视文档都极力建议不要重复使用主体或签发人名称,而且建议证书不要使用唯一标识符。版本 2 证书尚未得到广泛使用。
X.509 3 版是最新的版本(1996 年)。它支持扩展的概念,因此任何人均可定义扩展并将其纳入证书中。现在常用的扩展包括:KeyUsage(仅限密钥用于特殊目的,例如“只签”)和 AlternativeNames(允许其它标识与该公钥关联,例如 DNS 名、电子邮件地址、IP 地址)。扩展可标记为“极重要”,以表示应选中该扩展并强制执行或使用。例如,如果某一证书将 KeyUsage 扩展标记为“极重要”,而且设置为“keyCertSign”,则在 SSL 通信期间该证书出现时将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 SSL。
证书中的所有数据均用两个名为 ASN.1/DER 的相关标准进行编码。抽象语法注释 1 (Abstract Syntax Notation 1) 对数据进行描述。确定性编码规则 (DER) 描述储存和传输数据的唯一方式。既有人称这一组合“强大而灵活”,也有人称之为“含混而笨拙”。
参考:网络
❾ ios 私钥pem怎么转pkcs8
用途: pkcs8格式的私钥转换工具。它处理在PKCS#8格式中的私钥文件。它可以用多样的PKCS#5 (v1.5 and v2.0)和 PKCS#12算法来处理没有解密的PKCS#8 PrivateKeyInfo格式和EncryptedPrivateKeyInfo格式。 用法: [cpp] view plain openssl pkcs8 [-inform PEMDER] [-outform PEMDER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-topk8] [-noiter] [-nocrypt] [-nooct] [-embed] [-nsdb] [-v2 alg] [-v1 alg] [-engine id] 选项说明: -inform PEMDER::输入文件格式,DER或者PEM格式。DER格式采用ASN1的DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。 -outform DERPEM:输出文件格式,DER或者PEM格式。 -in filename:输入的密钥文件,默认为标准输入。如果密钥被加密,会提示输入一个密钥口令。 -passin arg:输入文件口令保护来源。 -out filename:输出文件,默认为标准输出。如果任何加密操作已经执行,会提示输入一个密钥值。输出的文件名字不能和输入的文件名一样。 -passout arg:输出文件口令保护来源。 -topk8:通常的是输入一个pkcs8文件和传统的格式私钥文件将会被写出。设置了此选项后,位置转换过来:输入一个传统格式的私钥文件,输出一个PKCS#8格式的文件。 -noiter:MAC保护计算次数为1。 -nocrypt:PKCS#8密钥产生或输入一般用一个适当地密钥来加密PKCS#8 EncryptedPrivateKeyInfo结构。设置了此选项后,一个不加密的PrivateKeyInfo结构将会被输出。这个选项一直不加密私钥文件,在绝对必要的时候才能够使用。某些软件例如一些JAVA代码签名软件使用不加密的私钥文件。 -nooct:这个选项产生的RSA私钥文件是一个坏的格式,一些软件将会使用。特别的是,私钥文件必须附上一个八位组字符串,但是一些软件仅仅包含本身的结构体没有使八位组字符串所环绕。不采用八位组表示私钥。 -embed:这个选项产生的RSA私钥文件是一个坏的格式。在私钥结构体中采用嵌入式DSA参数格式。在这个表单中,八位组字符串包含了ASN1 SEQUENCE中的两种结构:一个SEQUENCE包含了密钥参数,一个ASN1 INTEGER包含私钥值。 -nsdb:这个选项产生的RSA私钥文件是一个坏的格式并兼容了Netscape私钥文件数据库。采用NetscapeDB的DSA格式。 -v2 alg:采用PKCS#5 v2.0,并指定加密算法,默认的是PKCS#8私钥文件被叫做B<pbeWithMD5AndDES-CBC>(该算法用56字节的DES加密但是在PKCS#5 v1.5中有更加强壮的加密算法)的加密算法用口令进行加密。用B<-v2>选项,PKCS#5 v2.0相关的算法将会被使用,可以是des3(168字节)和rc2(128字节),推荐des3。 -v1 alg:采用PKCS#5 v1.5或pkcs12,并指定加密算法。可采用的算法见下面。 -engine id:指定硬件引擎。 注意: 加密了的PEM编码PKCS#8文件表单用下面的头部和尾部: -----BEGIN ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY----- 未加密的表单用: -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- 跟传统的SSLeay算法相比,用PKCS#5 v2.0系列的算法加密私钥,有更高的安全性以及迭代次数。于是附加的安全性是经过深思熟虑的。 默认的加密算法仅仅是56字节的,是因为它是PKCS#8所支持的最好的方法。 有一些软件使用PKCS#12基于密钥的加密算法来加密PKCS#8格式的私钥:它们会自动的处理但是没有选项来操作。 在PKCS#8格式中,有可能的是输出DER编码格式的经过加密的私钥文件,是因为加密的详细说明包含在DER等级中,相反的是传统的格式包含在PEM邓丽中。 PKCS#5 v1.5和 PKCS#12 算法: 各种各样的算法可以被选项-v1所使用。包含PKCS#5 v1.5和 PKCS#12 算法。详细描述如下: B<PBE-MD2-DES PBE-MD5-DES>:这两个算法包含在PKCS#5 v1.5中。它们仅仅提供56字节的保护,加密算法用DES。 B<PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES>:它们在传统的PKCS#5 v1.5中没有被提到,但是它们用同样地密钥引出算法,被一些软件所支持。在PKCS#5 v2.0中所提到。它们使用64字节的RC2以及56字节的DES。 B<PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40>:它们是PKCS#12基于密钥的加密算法,它们允许使用高强度的加密算法,例如3des或128位的RC2。 实例: 用3des算法将传统的私钥文件转换为PKCS#5 v2.0: [cpp] view plain openssl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem 用PKCS#5 1.5兼容的DES算法将私钥文件转换为pkcs8文件: [html] view plain openssl pkcs8 -in ocspserverkey.pem -topk8 -out ocspkcs8key.pem 用PKCS#12兼容的3DES算法将私钥文件转换为pkcs8文件: [html] view plain openssl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES 读取一个DER格式加密了的PKCS#8格式的私钥: [cpp] view plain openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem 转换一个PKCS#8格式的私钥到传统的私钥: [cpp] view plain openssl pkcs8 -in pk8.pem -out key.pem pkcs8中的私钥以明文存放: [html] view plain openssl pkcs8 -in ocspserverkey.pem -topk8 -nocrypt -out ocspkcs8key.pem 标准: PKCS#5 v2.0的测试向量的实现是以通告的形式用高强度的迭代次数算法3DES、DES和RC2来加密的。很多人要确认能够解密产生的私钥。 PKCS#8格式的DSA私钥文件没有备注文件中的:在PKCS#11 v2.01中的11.9节被隐藏了的。OpenSSL的默认DSA PKCS#8私钥格式隐藏在这个标准中。 BUGs: 必须有一个选项打印使用的加密算法的其他详细细节,例如迭代次数。 PKCS#8用3DES和PKCS#5 v2.0必须是默认的私钥文件:目前为了命令的兼容性。