访问从python访问mysql密码

时间:2013-06-23 18:00:14

标签: python mysql encryption hash

这似乎有点琐碎,但我花了一些时间谷歌搜索没有结果。无论如何我正在开发一个Web应用程序,我需要将“敏感”数据存储在mysql数据库中,然后访问它以验证来自python的api调用。我不是安全专家,但我对哈希和加密有基本的了解。

我知道如何使用aes_decrypt aes_encrypt加密数据,我也知道如何使用mysql提供的password()函数来散列数据。

我的第一个问题是我应该加密这些数据还是哈希?我的第二个问题是,一旦我使用mysql中的password()函数对其进行哈希处理,我不知道如何在python中“访问”或“使用”密码信息。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先,我不是python专家,我的回答仅针对一般方法。

Web应用程序中的密码通常存储为哈希值,而不是加密的,如果您的表遭到入侵,这通常会使某些人更难获取密码。哈希应尽可能生成。请不要只使用MD5,更好地使用更安全的东西(从今天的角度来看)并正确加盐以最大限度地降低彩虹攻击的风险。

我不会使用MySQL Password()函数。 documentation说:

  

PASSWORD()函数由MySQL中的身份验证系统使用   服务器;你不应该在自己的应用程序中使用它。为了那个原因   目的,请考虑MD5()SHA2()

如果您想与MySQL进行哈希,则会离开SHA2(),但不要忘记在散列之前对字符串加盐。我这样做的方法是使用您的应用程序散列字符串(请参阅python hashli b以供参考),salt it like this然后将哈希值存储在数据库中。这可以避免应用程序和数据库服务器之间的数据安全问题。