在爬虫分析的时候,经常在网页上看到如下格式的rsa公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21TAIfT/vexbobzH7Q8SUdP5uDPXEBKzOjx2L28y7Xs1d9v3tdPfKI2LR7PAzWBmDMn8riHrDDNpUpJnlAGUqJG9ooPn8j7YNpcxCa1iybOlc2kEhmJn5uwoanQq+CA6agNkqly2H4j6wIDAQAB
对于rsa算法的公钥,我们了解到,主要有两个信息:模数(modulus)和指数(exponent)
只有有这两个信息,我们便可以用以下代码段生成公钥,然后使用rsa库对数据进行加密
import rsa key = rsa.PublicKey(modulus, exponent) print key
现在我们需要做的就是从这段字符串中提出模数和指数.
在研究的过程中,除了这种字符串的形式,我们看得最多的应该属于public.pem、private.pem这种文件格式的公钥私钥了.
那么PEM这又是个什么格式呢,搜索下来,基本上都说包含什么信息然后是数据什么的,我怎么知道那些是信息,那些是数据呢?
对比一些资料,觉得看下图基本明了(本来是有一篇很好的文章,貌似找不到链接了,只保存了一张图片)
我们打开pem格式的文件看一下,发现
-----BEGIN RSA PUBLIC KEY----- MIGJAoGBAPVZR7eov/GFh77lx2sp1FDkP63mygPAUkomwV9fPFUuajviO5038P3k Jhl5o14+LN8NxLuyiTzgYKSunUkvqxwkWSKHOw8EL3m6YKytk5UR+FEg8LBqPNox lcT9a9VH2PngbnR9WWm2ycMQBppQRC3Ci7yLIcjwgDUOrgoz6PmpAgMBAAE= -----END RSA PUBLIC KEY-----
这个BEGIN和这个END中间这一段很像我们找到的这个字符串,我们把开头的字符串复制到public.pe