Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java的TOTP和Diffie-Hellman密钥交换_Java_Authentication_Diffie Hellman_One Time Password - Fatal编程技术网

使用Java的TOTP和Diffie-Hellman密钥交换

使用Java的TOTP和Diffie-Hellman密钥交换,java,authentication,diffie-hellman,one-time-password,Java,Authentication,Diffie Hellman,One Time Password,我想问一下,如何实现一个客户机-服务器应用程序,它可以使用java同时执行一次性密码和diffie-hellman密钥交换的操作?该场景是使用diffie-hellman共享密钥对一次性密码进行加密。然后,客户端将加密的OTP发送到服务器,服务器检查它是否与它生成的OTP匹配。我不确定这些操作是否可以一起执行首先,您需要执行hellman密钥交换并在服务器和客户端之间生成共享密钥。然后在客户端获取密钥并使用共享密钥和一些加密算法执行加密后,将其发送给服务器解密数据。因此,您可以为所有加密一次性生

我想问一下,如何实现一个客户机-服务器应用程序,它可以使用java同时执行一次性密码和diffie-hellman密钥交换的操作?该场景是使用diffie-hellman共享密钥对一次性密码进行加密。然后,客户端将加密的OTP发送到服务器,服务器检查它是否与它生成的OTP匹配。我不确定这些操作是否可以一起执行

首先,您需要执行hellman密钥交换并在服务器和客户端之间生成共享密钥。然后在客户端获取密钥并使用共享密钥和一些加密算法执行加密后,将其发送给服务器解密数据。因此,您可以为所有加密一次性生成共享密钥,也可以随时生成共享密钥。但我可以建议您使用非对称密钥加密(RSA,ECC),它将减少hellman密钥交换的开销。与对称密钥加密相比,它更安全

谢谢你的建议。我想使用diffie hellman使用加密的otp对服务器和客户端进行相互身份验证。我可以知道如何在Java上执行服务器和客户端吗?我应该使用套接字发送otp还是有其他方法?我是否创建diffie-hellman操作和一次性密码操作的类,并在服务器和客户端应用程序中调用它们?抱歉,我不熟悉Java,还在学习如何使用它编写代码。谢谢你的回答:)