繁体   English   中英

从python访问哈希的mysql密码

[英]Access hashed mysql password from python

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

我知道如何使用aes_decrypt aes_encrypt加密数据,并且我也知道如何使用mysql提供的password()函数对数据进行哈希处理。

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

任何帮助深表感谢。

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

Web应用程序中的密码通常存储为散列,而不是加密的,这基本上使如果您的表被盗用,某人很难获得它们。 散列应尽可能地坚实。 请不仅仅是MD5,最好使用更安全的东西(从今天的角度来看),并对其进行适当的撒盐处理,以最大程度地减少彩虹攻击的风险。

我不会为此使用MySQL Password()函数。 文件说:

PASSWORD()函数由MySQL Server中的身份验证系统使用; 您不应在自己的应用程序中使用它。 为此,请考虑使用MD5()SHA2()

如果您想使用MySQL进行哈希处理,则将保留SHA2() ,尽管不要忘记在哈希处理前先对字符串加盐。 我的方法是使用应用程序对字符串进行哈希处理(请参阅python hashli b以供参考), 像这样对其进行加盐处理 ,然后将哈希存储在数据库中。 这样可以避免应用程序和数据库服务器之间的数据安全性问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM