javascript - 我应该通过 PHP 还是 JavaScript 进行哈希处理?

标签 javascript php mysql hash login-system

<分区>

我正在尝试创建自己的登录系统,我想知道散列密码的最佳方法是什么?

我应该只使用 PHP SQL hash('SHA512' password) 中的函数还是应该使用 JavaScript?

我已经让系统通过 PHP SQL 和 SHA512 进行散列,但如果使用 JavaScript 更安全,我不介意转移。

所以我要问的是,使用 JavaScript 和 PHP 进行散列的优缺点是什么。

如果你也能告诉我 SALT 的含义,那会很酷,我还没有真正理解它的确切含义,以及我为什么要这样做。

是的,我知道有很多很好的登录系统我可以复制/粘贴,但这主要是为了了解它是如何工作的并获得一些经验。

最佳答案

用户显然担心 JavaScript 可能被禁用。这可以通过让您的编码系统预先添加一些无法插入的内容来“解决”,例如 \x01 或类似的不可打印字符。通过这种方式,您的服务器可以检查第一个字符是否为 \x01,如果不是,则它可以应用 JavaScript 应该执行的任何操作。

因此,解决该问题后,您还需要考虑 JavaScript 中的任何内容都清晰可见。任何恶意用户都可以轻松阅读您的 JS 源代码并准确了解加密是如何完成的。因此,您不能完全依赖 JavaScript 来加密您的数据。您必须还使用服务器端代码来进一步保护它。

从好的方面来说,任何阻止通过 HTTP 以纯文本形式发送密码的方法都是好事,但这正是 SSL (https://) 的用途。

所以基本上,JavaScript 中的加密可以被视为“穷人的 SSL”,但是它真的提供的安全性并不比服务器所能提供的更多。

关于javascript - 我应该通过 PHP 还是 JavaScript 进行哈希处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454609/

相关文章:

python - MYSQL CONNECTOR加载数据本地文件: file could not be read

javascript - 使用 JavaScript 为元素分配 ID

javascript - 如何强制 AWS Cognito : signUp() to execute synchronously (nodejs)

php - 通过PHP获取MySQL慢查询日志的位置

php - 中止和恢复 Symfony 控制台命令

mysql - MYSQL存储过程中循环select查询结果集

javascript - 将java数据传递到json中,然后从javascript中获取数据

javascript - 在Angular Controller 的回调中,为什么参数必须命名为 "$scope"?

javascript - 通过 php 触发和重新触发 AJAX 的最佳方法

mysql - 无法迁移 .csv 文件