如何通过HTTP实现安全authentication?

我知道我们有HTTPS,但是我想知道是否有algorithm/方法/策略在不使用SSL的情况下授予合理的安全级别。

我在网上看了很多解决scheme。

他们中的大多数是基于向散列添加一些时间元数据,但是它需要服务器和客户端的时间设置相等。 而且,在我看来,这个解决办法都不能阻止一个中间人的攻击。

如果你真的想,你可以在浏览器中实现相同的非对称encryption(当然,假设是Javascript):

https://www.pidder.com/pidcrypt/?page=demo_rsa-encryption

你给用户一把钥匙,并为自己保留一把钥匙。 即使有人拦截了客户端的密钥,也不能解密客户端发送回服务器的信息。 注意:任何拦截用户密钥的人可以解密服务器发送给客户端的任何东西 – 所以要么你需要解决这个问题(比如让客户端生成一个新的密钥对,然后发送给你一个或者只是让确定你永远不会发送任何敏感的回来)。 你需要小心生成这些密钥对,如果它们都是可预测的,那么它们就像没有安全性一样好。

要知道为什么这个工程,检查出它的维基百科页面。