带有 RSA 算法的 PHP 登录系统


PHP login system with RSA algorithm

目前我正在将我的登录系统与RSA类(PHP中RSA算法的实现类)连接起来。我已经阅读了一些有关此算法的信息,尽管我对它有一些疑问,并希望有人可以澄清它们。

RSA 使用两个密钥进行操作 - 公钥和私钥,两者都是使用算法生成的。这些密钥是否只生成一次,然后包含在站点代码中(一个在管理员上,一个在用户站点上)?

实现它的主要思想是将登录放在现场,例如登录.php将登录表单放入代码中公钥,并在发送登录名和密码进行验证时用公钥加密它们。在服务器端,此消息将使用私钥解密,并检查信息是否正确并发回真/假信息。你能告诉我它是否安全和正确使用吗?

只需使用HTTPS,而不是迷失在这些算法的实现中。我敢打赌,Javascript实现会在客户端产生巨大的开销。当您想加密您的口袋时,让传输层或应用层 (HTTPS) 来做 - 它经过测试,速度快,工作正常,需要几分钟才能设置。

请不要

实现这一点 - 改用HTTPS。你提出的根本不安全。如果您使用 JavaScript 在客户端加密表单数据,则表单数据将不安全。JavaScript 不适合加密。

基本规则是在客户端上执行的任何内容都是恶意的。在客户端上运行加密是一个非常糟糕的主意。

再次 - 使用 HTTPS 或不这样做。

如果您希望传输安全,则不能为其使用服务器端脚本语言。当明文密码到达服务器时,将首先进行加密和解密,从而为侦听器提供拦截的良好时间。您可以使用 RSA 的 javascript 实现在客户端加密密码,然后在服务器端使用 php 对其进行解密。

您将拥有用于加密的公钥和用于解密的服务器上的私钥。