使用rsa公钥对文本消息进行加密



我的客户给了我一个公钥,我想给他发一条短信,用他的公钥加密。公钥的扩展名为.pub。

我正试图通过openssl命令和使用pycrypto模块的python在bash中实现这一点,但没有成功。我是一个没有密码学经验的新手。

我该怎么办。提前感谢

公钥

假设:

  • 客户端提供的公钥在"key.pub"文件中
  • 在运行时接受用户的输入,以便在名为"msg"的变量中对字符串或文本进行加密
  • 已安装Crypto。PublicKey库使用命令">sudo pip install Crypto.PublicKey">

代码:

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5
with open("key.pub", 'r') as f1:
pubkey = f1.read()
msg = raw_input("Enter String to be encrypted: ")
print("raw string->", msg)
keyPub = RSA.importKey(pubkey) # import the public key
cipher = Cipher_PKCS1_v1_5.new(keyPub)
cipher_text = cipher.encrypt(msg.encode()) # now we have the cipher
print("cipher text->", cipher_text)

文件中密钥的格式:

文件中密钥的格式应该是这样的,

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAybVqRvfYvWbLsB98BqkD
lWd0/5y6SyhHt6/r6M0l7JXBweqMvxVt7XmI2yqPL56YxzcgQ8ycDkoqHJ+XozgP
iRnLNpYRlCzsiaOElbmQcnrI8iOb9Ahm6j0cbBB1S8VNvD+u9RQJt53zPxPj8/Dq
f1oNGFXOM8udNYWZaRCukLs/TumsAn0a+BF4639WtFiUvTWdVhlyvCQTs49ytRkH
rXH30RkB528RIvTGeW8xBTV4NaiTIzAEKCVSPagLr4Hzbb9b5+bODic/zkLGQazy
/NKOFgiB7kD2+WEMcuhTr5noeXau0PDAhgmrBhzzWOjUwwaO+ACvJLkPXZfjhy7P
+wIDAQAB
-----END PUBLIC KEY-----

最新更新