这次将一下公私钥的格式化,如何将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在这里给您说声谢谢的!
相关推荐
1、转换各种PEM(XML)格式公私钥,可以根据私钥获取公钥(pkcs8一般java用,xml格式一般C#用) 2、签名数据 3、验签并获取签名前的数据 3、公私钥格式加密或去密(支持大量对称算法,包括淘汰的) 4、生成RSA公私钥...
IOS RSA公私钥生成
RSA算法的公私钥 编码格式之DER编码的详细字段分割说明
自带公私钥文件和加解密demo,可通过openssl重新生成密钥文件 确保上传的内容合法合规,涉及侵权内容将会被移除
一个简单的java使用RSA生成公私钥对 非对称加密解密 签名验签的过程,附带一个基本的加密工具类,有兴趣的朋友可以下载下来看看
C++实现公私钥生成及文件加减示例
使用RSA生成公私钥对、加解密、及签名验签 JAVA源码,可供学习设计参考。
生成SM2公私钥 一.系统环境 系统环境:windows系统。 二.工具软件 工具软件:Win64OpenSSL。 三.生成SM2公私钥
java(sm2公私钥生成、加签、验签、加密、解密)demo案列
NULL 博文链接:https://yunlong167167.iteye.com/blog/1997780
RSA公私钥生成工具 RSA秘钥生成工具,可用于签名,验签,加密,解密
公私钥分割说明
这是一个RSA加密解密软件,可以指定大素数P和Q的位数,生成RSA公钥和私钥。还可以用用来对字符型文本进行加解密。
Rsa公私钥的生成java版本
RSA公私钥pkcs8格式, 不能被C#程序所用,需要转转换为C#用的xml格式。这是转换用的c#源程序。
公钥加密
rsa因数分解+随机生产公私钥
RSA公私钥加解密最稳定的必须jar RSA公私钥加解密最稳定的必须jar
支付宝生成RSA公私钥一键操作
用C# 实现了Rsa算法的公私钥从密钥容器中导入和导出