没有公私钥时,通过代码生成公私钥并加解密:
import rsa
# 生成公私钥对
(pubkey, privkey) = rsa.newkeys(2048)
# 保存公钥到文件
with open('public_key.pem', 'w') as f:
f.write(pubkey.save_pkcs1().decode())
# 保存私钥到文件
with open('private_key.pem', 'w') as f:
f.write(privkey.save_pkcs1().decode())
# 要加密的字符串
plaintext = b'Hello, World!'
# 使用公钥加密字符串
ciphertext = rsa.encrypt(plaintext, pubkey)
# 使用私钥解密字符串
decrypted_text = rsa.decrypt(ciphertext, privkey)
# 打印加密后的字符串和解密后的字符串
print("加密后的字符串:", ciphertext)
print("解密后的字符串:", decrypted_text)
把上述生成在文件里的公私钥,写死在代码里时:
import rsa
plaintext = b"Hello, World!"
pub = b'-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAmTjYs587m2Q0Lq90chvIWCB1cC/93qZ83XQBwqKZWg8aufEel6yo\nGNmhP1qNfGtj5GggmTZFB168E1gfmZ3Lnw5lZs5yBUjyfdSAocj+zdgIr1UXiiYi\nHtjF7uT5Qd7KqpnrbLk+3+nFWS9bF/tVpmXz1m5rSJob4ev0KZelMKq39Yov5Dap\nGTTBM17djoSCOWb9OJ652zIURaVcyI2hax93XLmrtix7d2SIpRNV1mCVwS8GVUBM\nVDbA/+OiIKyK4qcwMxpRrEcjgvUXJKT7sPWx29ycVY4Ykq1OaxpwYq4MymutdeIv\nype2O3gd5yu46ZoGrRnKJFut0BmyF0MIBwIDAQAB\n-----END RSA PUBLIC KEY-----\n'
pri = b'-----BEGIN RSA PRIVATE KEY-----\nMIIEqAIBAAKCAQEAmTjYs587m2Q0Lq90chvIWCB1cC/93qZ83XQBwqKZWg8aufEe\nl6yoGNmhP1qNfGtj5GggmTZFB168E1gfmZ3Lnw5lZs5yBUjyfdSAocj+zdgIr1UX\niiYiHtjF7uT5Qd7KqpnrbLk+3+nFWS9bF/tVpmXz1m5rSJob4ev0KZelMKq39Yov\n5DapGTTBM17djoSCOWb9OJ652zIURaVcyI2hax93XLmrtix7d2SIpRNV1mCVwS8G\nVUBMVDbA/+OiIKyK4qcwMxpRrEcjgvUXJKT7sPWx29ycVY4Ykq1OaxpwYq4Mymut\ndeIvype2O3gd5yu46ZoGrRnKJFut0BmyF0MIBwIDAQABAoIBADRZ7/CvXzZgrlOl\nLywtwe4aaQXD4AHK8K7ZjCBsXekfcApIECPSojybXzS+Q8lXB/JqgXjXyg4SmEAj\nw+hAuenGiW7u6pZTrka/7JNakXTTc2Q0tq5FCTNw7XAKW//dl3Fi1cV4JbtrrDok\nrAMtpL4N55pEb/OGc/Jdb/obKTTd4fPKX6EP89g+FEMgFoEdsucWPkUntCnUmU1K\nfP33/ZaFwxtwqUFUUNUExDhpSxNyBPMP2c/R0pEm205Dr27fJgUM8gr94ia2ghdG\n+6gZSBU3oj5jcizhhq8FsM0rKL6pGTsF2sVnT2WmiDN7ZaiD1vwanuVKs7hH22wk\nhR8G80ECgYkAtYwTWyDkBg5swkWkvVjnAx7/5ofY98R7O/ZTdtTovLL+VxyLg/69\nkrkeMGNMwldVnuPD11G7LlxNYO10WFWmDYde+IQc+6Chw5/oHe1kj1l0NSv6DFGd\nwrpL85mMrg3zCfqMoJVavK6ekJ1eEw8FHFSZK0uB58LJvqRgHljSM/JCNXTMJlsJ\nowJ5ANgPB0eWjBexU9ucjDcZFOJgc3nKrWhAsgoLma6Ty1fSPCG58725DwkIwJn1\nIr1wvL7J9jCgdl8tB2XFeg7ePmVOkCyXBfoZQqdrgk8gqY/WUoDSOK90eRG5XB1E\nMMWTWNxtV9a217LXNKLYCgZ3rSWa723qYdB2TQKBiCNhXRRRYJ7diMyDjgtom/y7\nudtPdjUzEWEqLDHoZEMCDxci9P2QU5mYgg2kDH2DT6hbcvsvbm8mhd3x6M6eQnI4\ng4WjGZLgRyY8r5vFe+eD42XJYD2uWjRs4ghjUEtLZKX5MhbJhJlo3nYIdSD5uGFB\nC2iomnR0PaTtm93OKYj+GXEZhf+jlkkCeDkJdp2Cc8dJa97c6/MbrvS4C6QKSk7s\nTVPzjgWVRKgRewhYQ61BLmPvKJE8MoiaO2mOfWyG39juVTabtEY6i3RJEiyDTfOh\nOYRjEEp9T+YF6U/Sr146PD/elB+xwcJWzK2cPAUVzcmLoHyg1byxWUdFKJH2vw2+\nPQKBiAUePeVGj6Aj53e9mngbMa2pqPImd+YGeiLNMieHzkZgimoFD0QbW4ctXRMm\n4j4CobJn9TSvNcbPKFqQHqYDZ8fqR39GkUiYtsHQSjE6Iau1hBGBnP3ZgMkSEEvC\n0OZCFf78SvkVCkMOJjAsHEKaFutyL0xkGZXyM/VVXos+4RHpnqD2/z5zWg4=\n-----END RSA PRIVATE KEY-----\n'
pubkey = rsa.PublicKey.load_pkcs1(pub)
privkey = rsa.PrivateKey.load_pkcs1(pri)
# 使用公钥加密数据
ciphertext = rsa.encrypt(plaintext, pubkey)
print("原始数2222据:", plaintext)
print("加密后的数据:", ciphertext)
# 使用私钥解密数据
decrypted_message = rsa.decrypt(ciphertext, privkey)
print("解密后的数据:", decrypted_message.decode())