我在用 Python 中的 RSA 加密文件后问了一个类似的问题,但这个问题有不同的含义。
我正在使用 AES 加密文件,使用 RSA 加密 AES 密码。
唯一的区别是我真的不想存储 AES 密码。用户必须提供其 RSA 密钥的路径和密码。
那么你觉得这个方案怎么样?
path_to_RSA_key = ... # 用户给定 pwd = ... # 这将用于加密文件。也是用户给的。 rsa_enc = RSA.importKey(path_to_RSA_key) # 使用 RSA 加密密码,保留最后 32 个字符 rsa_pwd = rsa_enc.encrypt(pwd)[-32:] # aes,使用加密密码 aes_enc = AES.new(rsa_pwd, AES.MODE_CBC) # 使用 AES 加密文件... # 只存储加密文件 # 不要以任何方式存储密码,不要存储 RSA 密钥的路径
另一种选择是经典方案,当您生成随机密码时,使用随机密码使用 AES 加密文件,使用 RSA 加密随机密码并仅存储加密结果。
如果你真的需要知道我为什么需要这个,这是我的一个项目,http://code.google.com/p/scrambled-egg
你觉得这个方案怎么样?先感谢您 !