擅长:python、mysql、java
<p>除非出于个人好奇心,否则不要编写自己的加密/解密算法。密码学有很多非常困难的方面,即使一个错误也意味着你的安全性为0。在</p>
<p>此外,在使用加密功能之前,请先研究一下,以确保您正确地使用了它。例如,不要以可逆的加密方式存储密码—您不需要密码的纯文本。您需要对其使用单向加密(称为加密哈希),并将其与用户输入的加密哈希进行比较。如果他们匹配,就让他们进来。现在数据库没有原始密码的踪迹,因为哈希无法逆转*。在</p>
<p>(不过,这还不止于此——你还希望哈希算法“慢”,这样破解者就不得不缓慢地尝试数千次不同的尝试,但是合法的使用无论如何都会在几次尝试中得到。为了使散列变得“慢”,你需要一个像bcrypt这样的算法,它有一个可调的参数来决定它应该有多慢,所以它甚至是未来的证明。)在</p>
<p><a href="http://docs.python.org/2/library/crypto.html" rel="nofollow">http://docs.python.org/2/library/crypto.html</a></p>
<p><a href="https://pypi.python.org/pypi/pycrypto" rel="nofollow">https://pypi.python.org/pypi/pycrypto</a></p>
<p>*除了彩虹表之外,这是一个想要破解的人预先计算出每个普通密码的散列结果。为了防止这种情况,在散列密码之前将密码与salt组合,并将salt与用户一起存储。在</p>