`
xiaoqingcai92
  • 浏览: 9827 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

公私钥格式化&如何取用

 
阅读更多

 

这次将一下公私钥的格式化,如何将str字符串变成公私钥的key类型

这个确实很头疼,当我研究出来的时候其实觉得还好,只是我用的是个笨办法,所以只能献丑了,毕竟我只是个小白,若果哪位大神路过有更好的办法,请给我留言,我是个很爱学习的好孩子呦!

 

-----------------------------------------------举个栗子-----------------------------------------

这个栗子不是吃的哈!

公私钥是长这样滴!

 

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArWx6cnfc+Ugdu7CW5CtC
OeecZqBCUooQDvHxixCxMh5Tyjg1HTkAHW99Wu9Owo4mZ4L+Cj/wpQYDToyUNXGq
+OvvhnHSH50xc9fStMqu4SizbnLKr0j6DWWsONYK9Vst1ilBcrikZHBQ882qgETr
3M0ipvAJg6+4tXv5Pza/a4W+n+JmYfRZDgcldoHDj4COOeZZNP8RD41BZx0kAWr9
Mxt37xoujBnQiRlWV0Zzpy7DbnVE6TQhS2QT6w2Cjt0EF9Kw6BcIBxFYddlSaN2L
h7HVRuVnVVrjC2RUUaQmmKQd9m7H5VHDoYHArcJjWVMYrcrgYlBkIlBwUx/YjhNz
/wIDAQAB
-----END PUBLIC KEY-----

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQClIciq0ZAgynm9
S/lekvOx1UzHL1FblWEfh2VWjsLdmEiNLpQ7HFchXMLUBiNAhYfH17HG7heyh7K8
CKwe4z4a8TOlnjc0+um62UM1yghjkV/5TxQVOHH+/iGWw4lj38yjrmnUdtM+A3i5
BJpVkxThStWZHouP3KPr7ROmY3V+NLV3bdFcYV/H6UiuJ1RPIkwm7bs2SVRB3syW
hpmvp0lzNBZ1vMSzW44glzGj+axjcruksm5nzfFcjwI/GQR7+cND2Qnoco+9teWT
2E7WRH2Td+jcMKbH0d01JE+Upc2nM4+fnv11AwaDU6CkfW47lyWOQ9Z2S+WJWWNj
hJZXp+6ZAgMBAAECggEAHBq93mTAVPRg99jAXlpAY5nb8WKaRC4OU6Flm++8Np6+
aljtHYpbQfBZsGBDC64uR9LsDOFk4xu5TctkD/W5EjjPA3cECl5R/V0Q1UzHVLrf
TL0qu9nZfP6flNs+vOLQH2OF24VFup44o7Sm172qphVoeSD7u8Zfl73HxF/VFV95
LPQ81ITms4z7ddcOgzzM88RiISVitTJQWncq7BfxfjH7WdoXiYGs4c9v2CFrZWjy
qoSmS9xP2mvaE9kaXhGPw3wiAMMBAkZ0QcUTR956xUvt8DuImAaJp696nglW/lEn
8b+SO3R0RHzBaAambSAPCQOBz7SSCFE6+x7FJHrgqQKBgQDQSH2XuJs9lt7fYsE0
FRzRgTFyerkZn/O6rPye1KLAeW7LzA+iOK0EDMkzrmzNffudBi53HnBf03Od1F89
/hZX22UZQ+Z52S1lhy8OnK2PS78pCJsZm2BFgpvXFXS8NOXOjdwxDq6Hqy1oDyeS
LatRUqdirOxoP4BU/VVoBK0RDwKBgQDK9omLppSHz13ipIfDucjiDay5tdYwMv5c
BwUDdNF0aHRUWiO3NqwBe33mSIN4spjbPwHnk3wN9hZJHJJug9t7czJPjJvV3/SL
D50/AoL+iO76ZQ/0jo7XCcSwMCXj33UKfj2LArSH0dZOgceM7E8otx+II78z6ldO
Gq4M4NG11wKBgHqXkESzBbyUho3ZJHqxSosNjbsh/LzWZrCjjPU3lqvPTaVqcHE9
BqjxlaNzsNqqomRj9QlrwxzD6rMlAwIMAb6ohbL/QjLJ32x4yvvAwG8tWFCgnhnO
WDXRkERifpkgUXroCIhfad60pD8xXEsv0jxFd/weZ+9cIP7lNVXKGsuFAoGBALnB
rB9ZJYWq34WICg2zosxpsZUCfHb+pNf7QLZqGy1MUHPHT/rmGcT9jjvOUC2OX+IB
p6+XxylL+heOA+ML4Tv6MaimyxWS9FC1yLgbh2KIVxhqmJC+TLM46IBMgNEu+gLR
iWgJ4MqR3W9azhUHTme4Oi6ycNOF/cOpHXUB6k1fAoGBAJ5ThMARzkV9Rl5lxfRs
BHHy+6JhHirubnV6NLWP/1pI9yS3H/kQKmgoueAIytB43kX/upQdASZZkRJwFZqr
qRszOiB3ds/jKTZuokCkT7cq5CrLUyoDpu6SsRgNI1yO9BTKI+UF6htNlehJjN+g
0/uj5f+4Zr5HZvGd7XQm00wm
-----END PRIVATE KEY-----

 

----------------------------------------路过------------------------------------------

其实公私钥的格式如上面的代码一样,是有页眉跟页尾的

-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----

 

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----

 按照规则,来,除了页眉跟页尾,其他内容是按照64位一行格式化的,所以我的笨办法就是将内容我们所拿到的str字符串进行变更格式。将字符串按照一行64位进行格式化,然后再加上页眉跟页尾,一个key的格式就已经完成,不过此时的信息还是str型的。

 

接下来!

---------------------------------------------咳咳!--------------------------------------------

公私钥生成是保存成pem文件形式的,所以我们要做的就是在本地建两个pem文件,名字自己取,能区分公私钥就可以。公钥跟私钥是要分别放在两个pem文件中的。

(我不会告诉你们txt文件保存下,然后改下扩展名就好了)

 

将我们格式化好了的str字符串信息保存到对应的pem文件中,然后写个代码去获取pem文件中的公私钥,然后将数据变更成key类型即可

翠花,上酸(dai)菜(ma)!

from Crypto.PublicKey import RSA

with open('public.pem',"r") as f:
     key = f.read()
     rsakey = RSA.import_key(key,passphrase="f00bar")

with open('private.pem') as f:
    key = f.read()
    rsakey = RSA.importKey(key)

 有米有发现代码中有个不同点啊!

没错,就是(passphrase="f00bar")

其实吧,我也不知道这是干嘛的,看上去像是个格式化的东西,类似于encoding=‘utf-8’

这个东西没什么用,可以不要的~!

with open(‘路径/文件名.扩展名’) as f

是打开这个地址的文件,

然后key= f.read(),去读取文件中的信息,赋值给key,此时读取出来的公私钥还是个str型的哦!

rsakey = RSA.importKey(key),将str型的key转换为key类型的参数

类型是这样滴:

<class 'Crypto.PublicKey.RSA.RsaKey'>

这样就完成了将公私钥str型转成key类型的过程了,所以比较笨的办法,可是我还是搞定了!

哪位大神能够告诉我更简便的方法,经留言,xiaoqingcai在这里给您说声谢谢的!

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics