python中rsa的RSA

使用rsa模块实现RSA加密

RSA

RSA为非对称加密, 有两种10进制的密钥来实现加密解密.

  • 公钥: 是服务端公开的一种密钥, 是公开的任何人都可以知道, 其获得的密钥一般由长度256的十六进制字符串和十六进制的’10001’构成.
  • 私钥: 是服务端非公开的一种密钥, 是私有化在服务端内部的, 常人是不知道的.

过程大致为: 使用公钥在客户端加密需要加密的数据, 然后发送到服务器端使用私钥解密.

python代码

import rsa
import binascii


# 公钥key会构成常为n, e值即256和'10001'.
public_key_n = '8d7e6949d411ce14d7d233d7160f5b2cc753930caba4d5ad24f923a505253b9c' \
               '39b09a059732250e56c594d735077cfcb0c3508e9f544f101bdf7e97fe1b0d97f2' \
               '73468264b8b24caaa2a90cd9708a417c51cf8ba35444d37c514a0490441a773ccb12'
               \
               '1034f29748763c6c4f76eb0303559c57071fd89234d140c8bb965f9725'
public_key_e = '10001'

# 转换为RSA可使用的十进制类型.
rsa_n = int(public_key_n, 16)
rsa_e = int(public_key_e, 16)

data = "需要加密的数据"

# 使用n, e值生成公钥.
key = rsa.PublicKey(rsa_n, rsa_e)

# 用公钥把数据加密.
endata = rsa.encrypt(data.encode(), key)
endata = binascii.b2a_hex(endata)
print(endata)

# 以string类型 输出. 数据很长...
print(endata.decode())

流程

1.准备好合适创建公钥的n, e值(十进制)和需加密的数据.
2.使用n, e值生成公钥.
3.使用encrypt生成加密后的数据.

4.可使用binascii来讲密文格式化输出.
# 没有密钥当然是没得解密了.

你可能感兴趣的:(python库)