【问题标题】:encrypt text message using rsa public key使用 rsa 公钥加密文本消息
【发布时间】:2018-10-31 08:52:30
【问题描述】:

我的客户给了我一个公钥,我想向他发送一条短信,该短信将用他的公钥加密。公钥带有 .pub 扩展名。

我正在尝试通过 openssl 命令和 python 使用 pycrypto 模块在 bash 中执行此操作,但没有运气。我是一个没有密码学经验的新手。

我该怎么做。在此先感谢

public_key

【问题讨论】:

标签: python openssl cryptography


【解决方案1】:

假设:

  • 您的客户提供的公钥在“key.pub”文件中
  • 在运行时获取用户输入,以便在名为“msg”的变量中加密字符串或文本。
  • 已经使用命令“sudo pip install Crypto.PublicKey”安装了 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)

文件中密钥的格式:

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

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

【讨论】:

  • 感谢您的回答。我收到“ValueError:不支持 RSA 密钥格式”。我用公钥链接编辑了问题
  • 我已经编辑了答案。我检查了你上传的文件。格式不正确。请检查上面答案中的格式。像上面的格式一样编辑您的公钥。谢谢
  • 如何更改提供给我的公钥格式。
  • 您可以将我提供的格式提供给您的客户,让他将其转换为类似的格式。或者可以尝试自己添加“-----BEGIN PUBLIC KEY-----”和“-----END PUBLIC KEY-----”短语。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 2011-11-07
  • 2011-11-10
相关资源
最近更新 更多