Java 我应该多次使用相同的密钥吗?
我正在为一门计算机安全课程开发一个基于JavaSE的应用程序(大学内部网),它通过HTTP请求将注册用户的密码(AES加密)发送到服务器。它执行以下步骤:Java 我应该多次使用相同的密钥吗?,java,security,encryption,secret-key,Java,Security,Encryption,Secret Key,我正在为一门计算机安全课程开发一个基于JavaSE的应用程序(大学内部网),它通过HTTP请求将注册用户的密码(AES加密)发送到服务器。它执行以下步骤: 用户注册到Intranet应用程序 客户端发送一个包含学生密码的HTTP请求,并用AES加密 PHP脚本现在解密AES密文并对其进行散列 哈希密码存储在数据库中 现在从我所读到的AES,我需要一个密钥作为加密过程的一部分。由于服务器脚本需要密钥来解密密码,所以每次使用相同的密钥会是一个坏主意吗?一旦脚本接收到密文,它将使用单向散列函数将其存储
现在从我所读到的AES,我需要一个密钥作为加密过程的一部分。由于服务器脚本需要密钥来解密密码,所以每次使用相同的密钥会是一个坏主意吗?一旦脚本接收到密文,它将使用单向散列函数将其存储在数据库中 如果您真的想使用对称密码 好的,我假设您希望两个实体通过在每个实体上输入相同的键进行通信(例如蓝牙连接)。在这种情况下,问题已经被提出,我让你谷歌一些答案,如 您当然想要的是HTTPS 但显然,您只需要在客户端和服务器之间进行安全通信。在这种情况下,您需要使用(因为您使用HTTP)。HTTPS通过握手为您完成所有这些,然后依靠对称密钥算法确保通信 如何满足您的要求 在您的情况下,如果登录页面使用HTTPS:
- 发送密码时,客户端将对密码进行事实上的加密
- 它将由服务器自动解密,然后您必须
- 在PHP中对其进行散列并将其存储到数据库中
希望有帮助 用例还不清楚。也许您可以一步一步地描述您的需求(例如,用户是否发送加密密码或纯文本密码)?谢谢,那么在第2步-浏览器中,谁加密密码,例如JavaScript?如果是,浏览器如何知道AES加密所需的密钥(系统密码)?Java应用程序将使用AES加密密码,Java应用程序只知道密钥。现在的问题是PHP脚本需要破译它,但需要密钥。对Java应用程序和PHP后端脚本使用相同的密钥是个坏主意吗?