我对数据安全实现相当陌生。我正在编写一个需要加密明文数据的Python代码。目前,我使用下面的AES加密实现对数据进行加密:AES密钥存储管理和Python中的腌制
https://pythonprogramming.net/encryption-and-decryption-in-python-code-example-with-explanation/
我有两个问题:
1)当使用加密方法,生成随机密钥。该密钥需要在解密方法中使用。我需要将密钥存储在一个文件中,以便稍后访问它。什么是适当的方法来保护存储在这个文件中的密钥,以及该文件应该采用什么格式(是.txt还是应该使用其他格式)?我一直在阅读方法来执行第二次加密来加密第一个密钥或类似的东西。但是用于第二次加密的第二个密钥是否会受到影响呢?
此外,我想避免使用用户生成的密码来保护加密密钥的方法。也许我应该为每个包含不同密钥的文件使用不同的编码方式?但我不知道如何做到这一点......
2)我想使用salting,以便相同的明文值产生不同的数据外观。根据我的理解,为了执行加密,我需要对随机盐和明文使用XOR,然后使用密钥对结果进行加密。在解密的时候,我需要使用密钥来解密字符串,然后使用与我在加密中使用的salt值相同的XOR,以便最后得到明文。
但是,我不太明白如何生成盐以及如何存储它。我怎样才能生成一个随机的盐值,它与XOR添加的明文具有相同的长度?而且,我可以使用相同的加密密钥来加密salt值吗?因为它是随机的,或者盐值根本不需要任何加密?