如何在以下代码中加密客户端和服务器之间传输的文本。我知道https
将加密隧道,但我想知道如何加密文本。
如果我在脚本上使用任何加密算法,即服务器端脚本,加密将在服务器端发生,而不是在文本开始从客户端流向服务器之前。
<HTML>
<form method="POST" action="TESTING.php" enctype="multipart/form-data">
NAME: <input type="text" name="username">
PASSWORD: <input type="text" name="password">
<input type="submit" value="Save and Proceed">
</form>
</html>
<?php
if(isset($_POST['username']))
{
echo"db operation";
}
?>
答案 0 :(得分:0)
将两个加密层相互叠加是没有意义的。如果您使用的https应该是a)安全且b)足够,除了非常特殊情况。
除此之外:没有可靠的方法在应用程序级别上在Web客户端和服务器之间实现安全加密。问题只是在客户端加密这样的所有知识,服务器将能够再次解密数据将使努力无效。 除了使用不对称的基于密钥的加密时,如ssl所做的那样,但是 为https协议做了什么。
哦,还有旁注:您在代码示例中提到的md5 sum算法是 not 加密,它是散列。顺便提一下,非常基本的哈希提供非常低的安全性。这是完全不同的东西。你当然可以在客户端散列密码(通过使用javascript,而不是php),但最终没有任何意义。
在典型情况下您应该做的是(最佳做法):使用https作为传输层(强制它,拒绝http使用)。然后,在服务器端应用 good 和&#34; salted&#34;密码上的哈希算法并将该哈希值保存在数据库中。根据对这些凭据的身份验证请求,然后比较密码的哈希值(数据库中的一个哈希值,以及身份验证期间使用的密码)。这样,密码本身根本不存储在服务器端。
玩得开心!