我正在尝试读取存储在配置文件中的加密密码(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$1"
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')]
希望你们能提供解决方案.. `
答案 0 :(得分:0)
我没有使用config.ini存储加密密码,而是开始使用.enc文件。
写入enc文件:
with open('file.enc', 'wb') as f:
f.write(b'abcdefg')
从enc文件中读取:
with open("file.enc", "rb") as f:
iv = f.read(16)
这很有用!!!!