如何使用Diffie-Hellman密钥交换来保护客户端和服务器之间的数据传输?

时间:2013-01-25 22:07:56

标签: java diffie-hellman

我是初学程序员。我被要求通过使用Diffie-Hellman密钥交换来保护客户端和服务器之间的数据传输。我在这个问题上搜索了很多,但我刚刚找到了一些找到大整数pg的示例代码。

问题是我不知道如何使用这些数字来确保信息传输。我想在客户端和服务器之间的连接上传输“字符串”,而不是整数。这些数字怎么对我有用?我正在接近这个项目的截止日期,因为我正在学习该课程,并且可以真正使用一些帮助。

1 个答案:

答案 0 :(得分:0)

我建议阅读并理解这一点:http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

这是一个有用的PHP代码片段......

GENERATOR = 2和PRIME(300位素数)是常数

        // generate server secret
        $privateKey = 0;

        for ($i=0; $i<100; $i++) {
            if ($i==0) {
                $privateKey = mt_rand(1, 9);
            } else {
                $privateKey .= mt_rand(0, 9);
            }
        }

        // output server public key
        echo gmp_strval(gmp_powm(GENERATOR, $privateKey, PRIME));

        // calculate server secret key
        $secretKey = md5(
            gmp_strval(
                gmp_powm($_POST['public_key'], $privateKey, PRIME)
            )
        );