PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

迪菲-赫尔曼(Diffie–Hellman)是一个可以让双方在不安全的公共信道上建立秘钥的一种算法,双方后期就可以利用这个秘钥加密(如rC4)内容。 迪菲-赫尔曼(Diffie–Hellman)算法原理很简单:

迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版

如上原理,最后很容易通过数学原理证明(g^b%p)^a%p = (g^a%p)^b%p,因此它们得到一个相同的密钥。 上面除了a,b和最后得出的公共密钥是秘密的,其它都是可以在公共信道上传递。实际运用中p很大(300位以上),g通常取2或5。那么几乎不可能从p,g和g^a%p算出a(离散数学问题)。

很多语言都对该算法做了实现,以PHP package中Crypt_DiffieHellman为例:

php;">

/*

  • Alice: prime = 563
  • generator = 5
  • private key = 9
  • Bob: prime = 563
  • generator = 5
  • private key = 14
    */

$p = 563;
$g = 5;
$alice = new Crypt_DiffieHellman($p,$g,9);
$alice_pubKey = $alice->generateKeys()->getPublicKey();

$bob = new Crypt_DiffieHellman($p,14);
$bob_pubKey = $bob->generateKeys()->getPublicKey();

$alice_computeKey = $alice->computeSecretKey($bob_pubKey)->getSharedSecretKey();
$bob_computeKey = $bob->computeSecretKey($alice_pubKey)->getSharedSecretKey();

echo "{$alice_pubKey}-{$bob_pubKey}-{$alice_computeKey}-{$bob_computeKey}"; //78-534-117-117

大佬总结

以上是大佬教程为你收集整理的迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版全部内容,希望文章能够帮你解决迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。