标签:exponent python hex rsa len 爬虫 start str
在爬虫分析的时候,经常在网页上看到如下格式的rsa公钥
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21TAIfT/vexbobzH7Q8SUdP5uDPXEBKzOjx2L28y7Xs1d9v3tdPfKI2LR7PAzWBmDMn8riHrDDNpUpJnlAGUqJG9ooPn8j7YNpcxCa1iybOlc2kEhmJn5uwoanQq+CA6agNkqly2H4j6wIDAQAB
对于rsa算法的公钥,我们了解到,主要有两个信息:模数(modulus)和指数(exponent)
只有有这两个信息,我们便可以用以下代码段生成公钥,然后使用rsa库对数据进行加密
接下来用代码实现
def str2key(s):
# 对字符串解码
b_str = base64.b64decode(s)
if len(b_str) < 162:
return False
hex_str = ''
# 按位转换成16进制
for x in b_str:
h = hex(x)[2:]
h = h.rjust(2, '0')
hex_str += h
# 找到模数和指数的开头结束位置
m_start = 29 * 2
e_start = 159 * 2
m_len = 128 * 2
e_len = 3 * 2
modulus = hex_str[m_start:m_start + m_len]
exponent = hex_str[e_start:e_start + e_len]
return modulus, exponent
我对上面那个rsa公钥进行解码
得到结果
('c2ee4c3cafab6ae37a7002962f909e656a58da37d0596f6d530087d3fef7b16e86f31fb43c49474fe6e0cf5c404acce8f1d8bdbccbb5ecd5df6fded74f7ca2362d1ecf033581983327f2b887ac30cda54a499e500652a246f68a0f9fc8fb60da5cc426b58b26ce95cda41219899f9bb0a1a9d0abe080e9a80d92a972d87e23eb', '010001')
这2个参数也就是莫属和指数
结下来就是对数据进行加密,
# 加密
def to_para(key,message):
message = str(message).encode()
modulus = int(key[0], 16)
exponent = int(key[1], 16)
rsa_pubkey = rsa.PublicKey(modulus, exponent)
crypto = rsa.encrypt(message, rsa_pubkey)
b64str = base64.b64encode(crypto)
return b64str
返回的结果就是加密后的参数
我们对一些数据进行加密
s = hashlib.md5("MCX00023".encode()).hexdigest()
#
a = to_para(key,'1')
print(a)
我对结果进行打印
b'TpisN9WMesup6aU0pbpomiNM3rr4LKoZBoupw9okObXRrCEYZy9ASGQhicbm7dW5oRMwQUgm1R7sD+36cmSg4EoTe61zyraWh6Jg/XLwZrCYuF8dIYw0VNM4CJE5f3ea6PBwDbkROzgU8hmJApiP/YE+T5pebeTBBKmVEuq0Jy4='
然后就可以开心的爬虫了。。。。
参考https://www.cnblogs.com/masako/p/7660418.html
标签:exponent,python,hex,rsa,len,爬虫,start,str 来源: https://blog.csdn.net/yang_bingo/article/details/89918234
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。