2017-12-27 37 views
0

コンフィギュレーションファイルに格納されている暗号化されたパスワード(ベース64 + AESエンコーディング)を読み取ろうとしています。限られたライブラリを使用する必要があります。そのため、私が見つけた多くの暗号化方法を試すことはできません。コンフィギュレーションファイルからバイトを読むpython

私が使用しているコードは、私が直面しています問題は、読みながらということである復号

def decrypt_password(): 
    from Crypto.Cipher import AES 
    cipher_text=RPF.readfromConfigFile('LoginCredentials','enc_password') 
    obj2 = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456') 
    message = obj2.decrypt(cipher_text) 
    message = message.decode("utf-8") #gives the decrypted password 

用の設定ファイルにenc_passwordよう

を暗号文を置いています

def encrypt_password():      # for encryption 
    from Crypto.Cipher import AES 
    obj = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456') 
    message = "password$1" 
    ciphertext = obj.encrypt(message) #ciphertext is the encrypted password 

です設定ファイルから、暗号化されたパスワードは文字列として読み込まれますが、それはバイトでなければなりません(私は信じています)。これは私が構成ファイルから読み取ら方法です:

if moduleName == 'LoginCredentials': 
      import io 
      config.read('configuration.INI') 
      list_of_variables = [config.get('LoginCredentials', 'url'), config.get('LoginCredentials', 'UserName'), 
           config.get('LoginCredentials', 'enc_password')] 

は、代わりに暗号化されたパスワードを保存するためのconfig.iniを使用するのでは、私はファイルを.encが付い使用して開始している `

+0

どのようなエラーメッセージが表示されますか? – everyone

+0

エラーはUnicodeDecodeErrorです: 'utf-8'コーデックは位置2のバイト0xb0を​​デコードできません:無効な開始バイト –

+0

デコードする前に 'message'の値を見るためにデバッガを使います。 – everyone

答えて

0

..あなたたちは解決策を提供することができます願っています。 ENCファイルからの読み込みのために

with open('file.enc', 'wb') as f: 
    f.write(b'abcdefg') 

:ENCのファイルに書き込むため

with open("file.enc", "rb") as f: 
    iv = f.read(16) 

これは働いていた!!!!