2017-11-22 19 views
0

最初の投稿はこちらPythonでコーディングするのも初めてのことです。RSA暗号化:復号化機能のエラー

私は本当に私のRSA暗号化のpythonプロジェクトのための助けが必要です。

解読を関数に変換すると、自分の解読が間違ったキーエラーを表示します。 (エラー:キーが間違っていますか?) 暗号化機能に復号化機能を組み込むと、暗号化されたメッセージが機能し復号化されます。

なぜか私に尋ねることはできますか? CipherTextは新しい変数となり、あなたの新しいdecrypt()機能で

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() 
+0

上記のコードのインデントが正しいことを確認できますか?そうでない場合は修正してください。 Pythonでは、それは大きな影響を与える可能性があります。 – roelofs

+0

最後にコードが見つからないようです。 – roelofs

+0

@roelofs正しいbtwです。初心者がStackoverflowに投稿したので、それがうまくいかないことはわかりませんでした。ターミナルでスクリプトを実行すると、私のコードが動作しています。そして最後の括弧部分も編集しました。ごめんなさい。 :) – Bernard1009

答えて

1

(私はLinuxのUbuntuの上でそれを実行しています)。あなたが書いたファイルの内容をencrypt()にリロードしてCipherTextに入れる必要があります。

以前は、変数には暗号化プロセスのデータが含まれていました(暗号化と復号化が同じ関数で実行された場合)。

+0

こんにちは!返事が遅れて申し訳ありません。変数の内容を他の変数にリロードするために何をすべきかを調べようとしました。ありがとうございました! 私はbtw(https://stackoverflow.com/questions/10139866/calling-variable-defined-inside-one-function-from-another-function)を使用したソリューションへのリンク – Bernard1009

+0

ファイルを開いて読み込むだけですもう一度(あなたが実際の生活のセットアップでやってくれるもの)はやっているだろう:) – roelofs