【问题标题】:Using SHA to encrypt password input on a form使用 SHA 加密表单上的密码输入
【发布时间】:2014-01-18 02:17:39
【问题描述】:

我知道你喜欢看代码,所以就在这里。我要做的就是在输入密码时使用 SHA 对密码进行加密。我已经设法加密了 mysql 数据库字段以匹配它。

我似乎找不到正确的语法,所以我得到一行 blob 而不是明文密码,这意味着它没有被加密发送到服务器。

谢谢

<body>
<div id="container">

<div id="logo"><img src="images/Logo.jpg" alt="mycena"  />

<div id="banner">
    <h1>Shropshire Fungus Group</h1>
    <p>&nbsp;</p>
</div>
</div>
<div id="ruler">
<hr />
</div>
</div>
<div class="menu"><ul class="nav" >
  <li><a href="#">Home</a></li>
  <li><a href="#">Membership</a></li>
  <li><a href="#">Resources</a></li>
  <li><a href="#">Gallery</a></li>
  <li><a href="#">Newsletters</a></li>
  <li><a href="#">Fixture List</a></li>
  <li><a href="#">Useful Links</a></li>
</ul>
</div>
<div id="intro">
<h2>Please complete your details to log in</h2>
<table>
<tr>
  <td> Username: </td>
  <td><input type="text" name="user" id="user" size="35" maxlength="50"/></td>
</tr>
<!-- password should be 8 characters or more in length -->
<tr>
  <td> Password: </td>
  <td><input type="text" name="upword" id="upword" size="40" maxlength="40"/></td>
</tr>
</table>
<p>&nbsp;</p>
<form  action="loginphp170114.php" method="post" id="demo">
<input type="submit" value="Submit form" />
</form>

【问题讨论】:

    标签: sha


    【解决方案1】:

    您需要使用外部库,例如 this one,或者自己实现 sha1 算法。

    请注意,sha1 是散列,不是加密,也不是专为存储密码而设计的散列算法,因此很容易被破解。

    【讨论】:

    • SHA-1 不是当今最好的散列算法,但它并不是真正“容易破解”,只要密码复杂且足够长。
    • 我读过的所有内容都说要使用为此目的而设计的哈希,例如 bcrypt。一个快速的谷歌搜索发现了一个声称你可以在大约一天内破解 sha1 密码的网站。 warmenhoven.co/2012/03/06/…
    • SHA-1 由于 Rainbow 表而很容易被破坏,bcrypt 非常棒,只需确保为每个密码生成一个随机盐。
    • @Tim:不是真的。他们假设只有 8 个字母数字字符。就像我说的,拥有一个复杂的密码,包含特殊字符、数字和大约 10 个字符或更多,即使使用非常强大的计算机,基本上也无法破解。是的,bcrypt 更好,特别是如果你增加它的轮数,但是增加密码长度会使暴力破解成倍增加。 SHA1 仍然可以使用良好的密码策略。但是,是的,如果可以使用 bcrypt,那就更好了。
    • 感谢您的反馈。明天我会花一些时间来弄清楚它们的意思!
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2021-05-09
    • 2020-02-20
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2014-05-12
    相关资源
    最近更新 更多