《PHP教程:迪菲-赫爾曼密鑰交換(DiffieCHellman)算法原理和PHP實(shí)現(xiàn)版》要點(diǎn):
本文介紹了PHP教程:迪菲-赫爾曼密鑰交換(DiffieCHellman)算法原理和PHP實(shí)現(xiàn)版,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP學(xué)習(xí)迪菲-赫爾曼(DiffieCHellman)是一個(gè)可以讓雙方在不平安的公共信道上建立秘鑰的一種算法,雙方后期就可以利用這個(gè)秘鑰加密(如RC4)內(nèi)容.
迪菲-赫爾曼(DiffieCHellman)算法原理很簡(jiǎn)單:
PHP進(jìn)修
PHP學(xué)習(xí)如上原理,最后很容易通過(guò)數(shù)學(xué)原理證明(g^b%p)^a%p = (g^a%p)^b%p,因此它們得到一個(gè)相同的密鑰.
上面除了a,b和最后得出的公共密鑰是秘密的,其它都是可以在公共信道上傳遞.實(shí)際運(yùn)用中p很大(300位以上),g通常取2或5.那么幾乎弗成能從p,g和g^a%p算出a(離散數(shù)學(xué)問(wèn)題).
PHP學(xué)習(xí)許多語(yǔ)言都對(duì)該算法做了實(shí)現(xiàn),以PHP package中Crypt_DiffieHellman為例:
PHP進(jìn)修
<?php
include '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, $g, 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
《PHP教程:迪菲-赫爾曼密鑰交換(DiffieCHellman)算法原理和PHP實(shí)現(xiàn)版》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP教程:迪菲-赫爾曼密鑰交換(DiffieCHellman)算法原理和PHP實(shí)現(xiàn)版》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10909.html