【发布时间】:2018-05-06 09:42:48
【问题描述】:
第一次发帖。这也是我第一次在 Python 上编码。
我的 RSA 加密 python 项目真的需要帮助。
如果我将解密转换为函数,我的解密会显示我的错误密钥错误。 (错误:错误的钥匙?) 但是当我将解密功能加入我的加密功能时,它会起作用并解密我已加密的消息。
我能问一下为什么吗? (我在 Linux Ubuntu 上运行它)
import os
import M2Crypto
def encrypt():
pubkey = (raw_input('Enter choosen public key:'))
loadpub = M2Crypto.RSA.load_pub_key (pubkey + '-public.pem')
encrypt = (raw_input('Enter message to decrypt:'))
CipherText = loadpub.public_encrypt (encrypt, M2Crypto.RSA.pkcs1_oaep_padding)
print "Encrypted message:"
print CipherText.encode ('base64')
f = open ('encryption.txt', 'w')
f.write(str(CipherText.encode ('base64'))) #write ciphertext to file
f.close()
def decrypt():
privkey = (raw_input('Enter choosen private key:'))
loadprivkey = M2Crypto.RSA.load_key (privkey + '-private.pem')
try:
PlainText = loadprivkey.private_decrypt (CipherText, M2Crypto.RSA.pkcs1_oaep_padding)
except:
print "Error: wrong key?"
PlainText = ""
if PlainText != "":
print "Message decrypted by " + privkey + " :"
print PlainText
def first():
print "Press 1 for encryption."
print "Press 2 for decryption."
qwe = (raw_input(''))
if qwe == '1':
encrypt()
first()
elif qwe == '2':
decrypt()
first()
else:
print "Please enter a correct number"
first()
if __name__ == '__main__':
first()
【问题讨论】:
-
你能确认你在上面代码中的缩进是正确的,如果不是,修复它?在 python 中,这可能会产生很大的影响。
-
最后好像也少了一些代码。
-
@roelofs 顺便说一句,这是正确的。新手在 Stackoverflow 上发帖,所以我不知道它会搞砸。如果在终端中运行脚本,我的代码就可以工作。我也编辑了最后一个括号部分。对不起。 :)
-
好的,但是您可以检查问题本身的格式。接近结尾处对
first()和decrupt()的调用似乎是错误的缩进。 -
@roelofs 伙计,这很尴尬。哈哈。我现在又编辑了。对错误感到抱歉。 :)
标签: python python-2.7 encryption rsa m2crypto