PHP:具有特殊字符的密码

Aar*_*ron 1 php mysql sql passwords

我似乎无法想出在PHP中使用密码的正确方法.在存储方面,我正在哈希并使用盐,但我试图将基本密码关闭

stripslashes(mysql_real_escape_string($_POST["password"]));
Run Code Online (Sandbox Code Playgroud)

我假设有些用户会使用"!@#$%^ ..."等密码<b>lulz</b>"u'mad?.我可以想象用户使用密码之类的.

如何在密码变量中包含这些特殊字符?

Oli*_*rth 5

你不应该在这里做任何逃避或剥离.* 只是$hashed = my_favourite_hash($_POST["password"] . $salt)应该没事. 任何理智的散列函数都应该返回一串字母数字字符,其中没有一个需要转义.

无论如何,您应该为SQL查询使用预准备语句,因此不存在SQL注入等的可能性.


*假设你没有启用魔法引号(你真的不应该!).

my_favourite_hash在此处替换您首选的哈希函数.

  • 我猜这个子文本是为了避免"{hash_algo}不安全!" 输入评论.好决定 :) (3认同)
  • stripslashes()函数和mysql_real_escape_string()的一点是要确保你没有传递任何您的查询,可能被误认为是数据以外的东西.散列应该将您发送的任何内容转换为严格的字符串数据. (2认同)