导航:首页 > 证书转让 > 证书base64

证书base64

发布时间:2021-06-29 01:55:59

㈠ 如何查看证书的16进制der编码,及证书的各个域der格式

证书一般都是x.509格式的证书,然后经过DER编码,DER是TLV编码,然后再经过base64编码后存储的。

正确的方法,应该是,把证书文件,用binary方式,传送到linux下,然后用linux中的base64来进行文件解 码。

命令如下:base64
-d -i ca.crt > crt.hex

-d的命令是,然后-i是--ignore-garbage
When decoding, ignore non-alphabet characters.

Decoding
require compliant input by default, use --ignore-garbage to
attempt to
recover from non-alphabet characters (such as newlines) in
the encoded
stream.

然后再用vim打开crt.hex,这时候再转换成16进制,就可以查看到正常的证书16进制的DER编码了。

㈡ RSA公钥只返回一串base64字符 怎么使用

正常的情况下RSA公钥是不会只返回一串base64编码的。我们从原理上说起:

RSA密钥对有很多个参数,d /dp/dq/Expoent/InverseQ/Molus/p/q,原理上我们是知道他是由两个大素数p和q的乘积,正常的情况下含有私钥的文件会反这些参数全部给出,而如果只给出公钥时,事实上是给定了n(Moles)和e(Exponent)两个参数,这两个参数可以用来加密,我们也都知道,如何将这两个参数有效地传递给另一方呢?或者说我们把这两个参数如何给其他人呢,这个就是我们常说的公钥文件,当然有什么pfx等等,但这里我们如果简要地传递给第二方时,我们会经常使用一个对象RSAParameters类,这个对象就是这几个参数,如果我需要传递给你时,有效的方式就是把RSAParameters序列化,然后把序列化的内容给你就可以了。

在C#中有两种常用的序列化形式,一种就是byte序列化,一种就是xml序列化(一般使用JSON序列化的时候不多,因为javascript对实现RSA原生支技较为复杂)。

byte序列化不适合在网络上传输,所以一般都使用XML序列化,xml适合网上传输,他会把二进制自动序列化为base64编码。而事实上RSAParameters类和几个参数全是byte类型的(方便存储超大数字),所以会序列化成如下形式:

<RSAKeyValue>
<Molus>…</Molus>
<Exponent>…</Exponent>
<P>…</P>
<Q>…</Q>
<DP>…</DP>
<DQ>…</DQ>
<InverseQ>…</InverseQ>
<D>…</D>
</RSAKeyValue>

很明显这是一个序列化后的xml形式,其中几个参数都是被自动序列化成base64编码,如果是公钥的话,其中<Molus>和<Exponent>两个参数有值,其他的在序列化过程中如果没有值不序列化,所以你可以最终看到只有这两个参数的一个结构。

PS:序列化与反序列化由RSACryptoServiceProvider类的ToXmlString(bool)执行,其中参数表示是否含有私钥,如果是则全部参数都会存在,否则只含有公钥。拿到这个文件时,可以直接使用FromXmlString(string)进行导入即可使用。

但事实上,RSACryptoServiceProvidder提供的不仅有ToXmlString()方法,还存在有ExportCspBlob()方法和ExportRSAParameter()方法。导出RSAParameter方法不用说了,基本上用于本地版本,就是导出一个RSAParameter结构,而ExportCspBlob方法与ToXmlString()有一定的比较性,它导出的是一个二进制的形式,也就是二进制序列化后的数值,由于其是二进制形的数值。但两种形式的序列化虽然都是序列化RSAParameter结构,但并没有让你直接使用XmlSerializer类进行序列化,而由于RSACryptoServiceProvider中的方法已经实现了,当然反序列化也是同理。

但由我们在使用.net自动生成公私钥时,其Exponent参数永远是65537(ABAQ),其实对于.net自动生成的公私钥对算是一个测试的公私钥对,所以它保证了Exponent为固定的一个值。所以很多人不太明白这个道理,以为真正使用的公私有对的e都一定被选定为该值,所以有一类人为了“节省”带宽,自做主张在传递公钥时只传递了一个Molus的值!换句话来说,这些非商用的情况下的可行的,而且在商用的情况下也有一定的可行性。这里你可能只看到对方传递的是一个base64编码——这种情况显然不是规范的,所以尽量不使用或少使用,如果某企业有自己的证书或提供自己的公钥时,这种情况显然会导致你重新修改程序。但这也是你见到全是base64编码的原因。(他只传递了molus的值 ,而不是RSAParameter序列化结构)。

另外一类的程序员,喜欢造轮子,或者是他们喜欢上了ExportCspBlob()和ImportCspBlob()两个方法,不管是本地还是网络传输,可怜他们只会用一对的方法,总是不知道ToXmlString()和FromXmlString()这一对方法是用来干什么的。所以他们爱好就是动不动用ExportCspBlob()方法导出公钥或私钥对。如果是本地程序这当然没有问题,但如果是远程的话,也使用这个,但导出的一堆byte他们没办法通过网络(我指的html之类的通讯,不是CS模式下)传输,当然有,遇到我们没有传递二进制时设计成编码就可以了。所以指出了一堆二进制之后,把这个二进制进行base64编码来传递——这种情况我见到的最多!如果你看到这种的一堆base64时,需要先手式把base64编码转换成二进制,然后使用ImportCspBlob()方法再导入进去。这种情况看起来没有大问题,但实际上是绕了一个圈圈,感情就会使用ExportCspBlob()方法,为什么不直接考虑使用ToXmlString()方法呢?所以我看到很多情况下base64位编码基本上都属于这种情况!

事实上,我的建议是,如果是本地存储的情况下,比如需要存储成一个文件,这时可以使用ExportCspBlob()方法导到成byte数组,然后可以直接将该数组写入到dat文件中,以方便其他时间的使用;如果是网络传输的情况下,因涉及到网络协议的问题,二进制流传输还行,但如果是文本流传输时使用ToXmlString()方法导出,可以直接让其他程序使用。虽然在微软上没有这么规定,但如果你这么使用却是一个很恰当的使用场景(二进制序列化时,由于参数的值本身就是二进制,所以它序列化时其他最为简单,那些个二进制的值不需要任何的编码处理,所以性能会高一些,而xml序列化则涉及到二进制的编码,所以性能上没有直接二进制高,但如果你先导出成二进制,再base64编码,就让人难以想通了,完全属于对.net类库不熟悉而造成的!很多人可能会说,其他语言中导到的二进制——如果基于这种考虑,理由似乎说得过去,但至少常见的语言中还都是支持xml形式的,包括javascript新版语言原生支持RSA,它只支持xml形式和JSON形式,并不支持二进制形式。所以先导出二进制再编码base64形式纯属多余)。

PS:这一点更为重要,不少人把RSA的公私钥对导出后直接保存成文件,事实上我也这么说了,但是在windows中,尽量避免这样做,除非你要对机器进行迁移时或者其他原因需要,否则不要大摇大摆地把公私钥对存储成一个文件,如果被别有用心的人拿了去,你自己想想后果是什么样的!windows本身提供了一种叫密钥容器的机制,可以存储DSA/RSA/DES/TDES等非对称或对称密钥的安全存储。应当使用这种安全存储的机制,而不是把公钥密文件大摇大摆在丢在某个目录下。关于密钥容器的问题,你可以查阅MSDN上,可以直接使用的。类似的情况还有,某些情况下我们从CA(认证中心)获得一个证书时,也是把证书导入到容器中,然后设置导出密码,销毁原证书文件。如果在迁移时,可以使用密钥导出私钥证书,然后再到其他机器上安装。很多人不太理解这样做的目的,其实密钥管理还涉及到一个人员管理的问题,这样证书只会经过某个特定的人进行处理,其他任何人都无法拿到该证书,但他们可以使用,所以这样做是十分安全的。

㈢ 如何将文件中Base64进制数据生成X509证书

很简单,你双击user.p7b,打开证书-当前用户下拉菜单,选中对应文件夹,然后里面有个证书的文件夹,里面应该有几个证书,看一下对应的是哪一级。一般域名或者IP的是服务器证书,右键点击它,然后点击所有任务,点击导出然后点击下一步,选择base...

㈣ java如何解读证书里的内容(通过string 来生成X509Certificate对象)

那个字符串是Base64编码后的

试着把String 转成inputStream,

InputStream inStream = new ByteArrayInputStream(caString.getBytes('UTF-8'));用这句替代 上面写的第二行代码。但是在执行版第四行的权时候报错。。

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding

㈤ 如何导出cer证书的Base64编码信息

1、将证书双击,安装到IE中,如果是个人证书会安装到:在IE的 工具 -> internet选项 -> 内容 -> 证书 -> 个人
2、打开IE,在在IE的 工具 -> internet选项 -> 内容 -> 证书 -> 个人 中,找到这张证书,选中它
3、点击“导出”按钮
4、点击“下一步”,再点击“下一步”
5、选择“Base64编码X.509(.cer)”
6、点击“下一步”,一直到保存完毕

OK,cer证书的Base64编码格式已经生成完毕。

㈥ 如何获得证书的BASE64编码

这几天项目中需要使用到BASE64格式的证书信息,我就从IE中导出证书,里面有可选项,你可以选择不需要导出证书私钥,然后选择导出BASE64编码格式X.509的证书,即.CER格式的证书,导出到本地之后,使用UE之类的工具打开之后就可以看见里面的信息,类似这种-----BEGIN CERTIFICATE-----

㈦ 数字证书的证书格式

数字证书的格式普遍采用的是X.509V3 国际标准,一个标准的 X.509 数字证书包含以下一些内容:

1、证书的版本信息;

2、证书的序列号,每个证书都有一个唯一的证书序列号;

3、证书所使用的签名算法;

4、证书的发行机构名称,命名规则一般采用X.500格式;

5、证书的有效期,通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;

6、证书所有人的名称 (Subject),命名规则一般采用X.500格式;

7、证书所有人的公钥;

8、证书发行者 (Issuer) 对证书的签名。

(7)证书base64扩展阅读

数字证书主要具以下三方面特征:

第一,安全性。

用户申请证书时会有两份不同证书,分别用于工作电脑以及用于验证用户的信息交互,若所使用电脑不同,用户就需重新获取用于验证用户所使用电脑的证书,而无法进行备份,这样即使他人窃取了证书,也无法获取用户的账户信息,保障了账户信息。

第二,唯一性。

数字证书依用户身份不同给予其相应的访问权限,若换电脑进行账户登录,而用户无证书备份,其是无法实施操作的,只能查看账户信息。

第三,便利性。

用户可即时申请、开通并使用数字证书,且可依用户需求选择相应的数字证书保障技术。用户不需要掌握加密技术或原理,就能够直接通过数字证书来进行安全防护,十分便捷高效。

㈧ https(SSL/TLS)数字证书中的公钥参数(Public Key parameters)0500是什么含义

微软详细:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379059(v=vs.85).aspx
参数介绍:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379057(v=vs.85).aspx
...

公钥算法:
算法ObjectId:1.2.840.113549.1.1.1 RSA(RSA_SIGN)
算法参数:
05 00
...

我想帮你分解你正在看的东西。
如果你拿你的base64字符串:
+ / / 3J + skZ6UtW +

然后将其解码为十六进制:
30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01
05 00 03 81 8D 00 30 81 89 02 81 81 00 AA 18 AB
A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63 4E 45 71
C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B 47 1B D8
96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62 46 F3 05
50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE B0 59 DC
0B 35 81 43 B4 4A 35 44 9E B2 64 11 31 21 A4 55
BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F 65 1C DB
23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B 35 FD 13
A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67 02 03 01
00 01

所以问题是:这是什么?那实际上是ASN.1编码的DER变体。ASN.1是一个可怕的怪物,但价值实际上是这样的:

30 81 9F ;30=SEQUENCE (0x9F = 159 bytes)

| 30 0D ;30=SEQUENCE (0x0D = 13 bytes)
| | 06 09 ;06=OBJECT_IDENTIFIER (0x09 = 9 bytes)
| | 2A 86 48 86 ;Hex encoding of 1.2.840.113549.1.1
| | F7 0D 01 01 01
| | 05 00 ;05=NULL (0 bytes)
| 03 81 8D 00 ;03=BIT STRING (0x8d = 141 bytes)
| | 30 81 89 ;30=SEQUENCE (0x89 = 137 bytes)
| | | 02 81 81 ;02=INTEGER (0x81 = 129 bytes) the molus
| | | 00 ;leading zero of INTEGER
| | | AA 18 AB A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63
| | | 4E 45 71 C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B
| | | 47 1B D8 96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62
| | | 46 F3 05 50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE
| | | B0 59 DC 0B 35 81 43 B4 4A 35 44 9E B2 64 11 31
| | | 21 A4 55 BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F
| | | 65 1C DB 23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B
| | | 35 FD 13 A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67
| | 02 03 ;02=INTEGER (0x03 = 3 bytes) - the exponent
| | | 01 00 01 ;hex for 65537

所以编码在十六进制中有两个重要的数字:
指数:(65537 几乎每个人普遍使用65,537作为主要指数)
模数:00 AA 18 AB A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63 4E 45 71 C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B 47 1B D8 96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62 46 F3 05 50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE B0 59 DC 0B 35 81 43 B4 4A 35 44 9E B2 64 11 31 21 A4 55 BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F 65 1C DB 23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B 35 FD 13 A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67
或者,在十进制中,你的模数是:
119,445,732,379,544,598,056,145,200,053,932,732,877,863,846,799,652,384,989,588,303,737,527,328,743,970,559,883,211,146,487,286,317,168,142,202,446,955,508,902,936,035,124,709,397,221,178,664,495,721,428,029,984,726,868,375,359,168,203,283,442,617,134,197,706,515,425,366,188,396,513,684,446,494,070,223,079,865,755,643,116,690,165,578,452,542,158,755,074,958,452,695,530,623,055,205,290,232,290,667,934,914,919

㈨ 如何从user.p7b,导出base64格式的根证和服务器证书,需要详细步骤

很简单,你双击user.p7b,打开证书-当前用户下拉菜单,选中对应文件夹,然后里面有个证书的文件夹,里面应该有几个证书,看一下对应的是哪一级。一般域名或者IP的是服务器证书,右键点击它,然后点击所有任务,点击导出然后点击下一步,选择base64格式,也就是cer格式。导出根证书操作一样。请采纳。

阅读全文

与证书base64相关的资料

热点内容
马鞍山市政府王晓焱 浏览:176
vn猪年限定 浏览:90
马鞍山金苹果驾校 浏览:324
软件使用权合作协议 浏览:123
七日杀75创造模式 浏览:905
潍坊高新区公共行政审批服务中心 浏览:455
马鞍山深蓝光电 浏览:699
06岁公共卫生服务工作总结 浏览:137
基本公共卫生服务规范第三版 浏览:249
矛盾纠纷排查调处记录表 浏览:59
电力qc成果发布ppt 浏览:407
沙雕发明博主 浏览:105
禹城市工商局合名 浏览:977
网络侵犯著作权报案 浏览:734
税务报到期限 浏览:6
怎样查询银行卡有效期 浏览:19
浙江省温州市工商局企业查询 浏览:592
马鞍山全套多少钱 浏览:568
艾丁顿发明了什么 浏览:651
希腊谁创造了人类 浏览:415