我需要在我的应用程序中以加密方式存储服务器密码,我需要以文本形式供以后使用。是否可以在python中执行此操作以及如何执行此操作?请解释一下。
答案 0 :(得分:3)
不要编写自己的加密/解密算法,除非是出于个人好奇心。密码学有很多非常困难的方面,甚至一个错误意味着你有0安全性。
此外,在使用加密功能之前,请先研究一下以确保正确使用加密功能。例如,不要将密码存储在可逆的加密中 - 您不需要密码的纯文本。您希望对其使用单向加密(称为加密哈希),并将其与用户输入的加密哈希进行比较。如果它们匹配,则让它们进入。现在数据库没有原始密码的痕迹,因为散列无法逆转*。
(但它并不止于此 - 你还希望散列算法'慢',这样一个破解者必须非常懒散地尝试数以千计的不同尝试,但合法的使用会在几次尝试中得到它。要使散列“慢”,你需要一个像bcrypt这样的算法,它有一个可调参数来说明它应该有多慢,所以它甚至是未来的证据。)
http://docs.python.org/2/library/crypto.html
https://pypi.python.org/pypi/pycrypto
*除了彩虹表,这是一个潜在的破解者预先计算散列每个常见密码的结果。为防止这种情况发生,请在密码之前将密码与盐结合使用,并将盐与用户一起存储。
答案 1 :(得分:1)
使用PyCrypto的AES实现。