我正在尝试解密密码运行时从.config文件中读取加密密码。当pw来自配置文件但是通过传递参数直接调用方法时,解密不起作用。加密代码如下
from Crypto.Cipher import AES
def main():
obj = AES.new(b'AbcDefPqrXyzSvcs', AES.MODE_CFB, b'AbcDefPqrXyzSvcs')
ciphertext = obj.encrypt(b'abc@123')
print ciphertex
if __name__ == "__main__":main()
和解密代码
def abc(self, user, pw, somoMoreInfo)
decr= AES.new(b'AbcDefPqrXyzSvcs', AES.MODE_CFB, b'AbcDefPqrXyzSvcs')
x= decr.decrypt(pw)
现在当我将pw传递给方法" abc"通过配置文件看起来像下面它不工作。(在代码中,它在传递FYI之前转换为字典。)
[EndSystem]
user=user
pw=\xaf\xc6m\t\x84\xbd\xbe
但是当我直接调用方法时,它正在工作。
abc("user", "\xaf\xc6m\t\x84\xbd\xbe", "xyz")
当pw来自字典时,有人可以帮助解决问题吗?
答案 0 :(得分:1)
我们知道问题是什么,我要求您发布用于从配置文件中获取加密密码的代码,但由于您坚持不这样做,请尝试这样做:
# under the assumption that your config is in a dict called `config`
abc(config["pw"].decode("string_escape"))
# Python 3.x: abc(bytes(config["pw"], "ascii").decode("unicode_escape"))