Teknologi penyulitan asimetri RSA ialah salah satu kaedah penyulitan paling popular dan selamat pada masa ini. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP juga mempunyai kelebihan unik dalam melaksanakan penyulitan RSA. Artikel ini akan memperkenalkan pembaca kepada cara menggunakan PHP untuk melaksanakan teknologi penyulitan asimetri RSA.
1. Apakah itu algoritma RSA
Algoritma RSA ialah teknologi penyulitan asimetri, yang biasanya digunakan untuk penyulitan data dan tandatangan digital. Keselamatannya terutamanya berdasarkan masalah teori nombor, iaitu kesukaran memfaktorkan integer yang sangat besar dalam masa yang sangat singkat.
Proses penyulitan algoritma RSA adalah seperti berikut:
phpseclib ialah perpustakaan kelas penyulitan dan penyahsulitan yang dilaksanakan dalam PHP Ia menyokong pelbagai algoritma penyulitan asimetri, termasuk RSA, DSA dan ECDSA. Apabila menggunakan phpseclib untuk penyulitan RSA, kita perlu melakukan langkah berikut:
Perkenalkan perpustakaan phpseclib:require_once('Crypt/RSA.php');
$rsa = new Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1); $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1); $keys = $rsa->createKey(); file_put_contents('public_key.pem', $keys['publickey']); file_put_contents('private_key.pem', $keys['privatekey']);
$data = 'hello, world'; $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('public_key.pem')); $ciphertext = $rsa->encrypt($data);
$rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('private_key.pem')); $plaintext = $rsa->decrypt($ciphertext);
$config = array( "digest_alg" => "sha512", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); $private_key = openssl_pkey_new($config); openssl_pkey_export_to_file($private_key, "private.key");
$public_key = openssl_pkey_get_details($private_key); $public_key = $public_key["key"]; file_put_contents("public.key", $public_key);
$data = 'hello, world'; openssl_public_encrypt($data, $ciphertext, $public_key);
openssl_private_decrypt($ciphertext, $plaintext, $private_key);
Atas ialah kandungan terperinci PHP melaksanakan teknologi penyulitan asimetri RSA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!