从配置文件中读取一个字节 python

Read a byte from configuration file python

我正在尝试读取存储在配置文件中的加密密码(base 64+AES 编码)。我必须使用有限的库,因此我无法尝试我发现的许多加密方法。

我使用的代码是

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"
    ciphertext = obj.encrypt(message) #ciphertext is the encrypted password

我将密文作为 enc_password 放在配置文件中

待解密

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

我面临的问题是,在读取配置文件时,加密密码被读取为字符串,而它应该是一个字节(我相信)。这是我从配置文件中读取的方式:

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')] 

希望大佬们给个解决办法.. `

我开始使用 .enc 文件,而不是使用 config.ini 来存储加密密码。

写入 enc 文件:

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

从 enc 文件读取:

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

这成功了!!!!