我正在尝试创建自己的登录系统,我想知道散列密码的最佳方法是什么?
我应该只使用PHP SQL hash('SHA512' password)
中的函数,还是应该使用JavaScript?
我已经使用SHA512
通过PHP SQL对系统进行哈希处理,但如果使用JavaScript更安全,我不介意转移。
所以我要求的是,使用JavaScript和PHP进行散列的优缺点是什么。
如果你能告诉我它对SALT
意味着什么,真的不明白它究竟意味着什么,以及为什么我应该这样做,那就太酷了。
是的,我知道有很多好的登录系统我可以复制/粘贴,但这主要是为了解它是如何运作并获得一些经验。
答案 0 :(得分:3)
用户可能已禁用JavaScript的明显问题。这可以解决"通过让您的编码系统添加一些无法插入的内容,例如\x01
或类似的不可打印字符。通过这种方式,您的服务器可以检查第一个字符是否为\x01
,如果它不是,那么它可以应用任何JavaScript应该执行的操作。
因此,在解决了该问题后,您还需要考虑JavaScript中的任何内容都清晰可见。任何恶意用户都可以轻松读取您的JS源代码,并确切了解加密的完成方式。因此,您不能完全依赖JavaScript来加密数据。您必须也使用服务器端代码来进一步保护它。
从好的方面来说,任何阻止密码通过HTTP以纯文本形式发送的东西都是好事,不过这是SSL(https://
)的用途。
所以基本上,JavaScript中的加密可以看作是“穷人的SSL”#34;但是, 服务器可以做。