Rumah > pembangunan bahagian belakang > tutorial php > PHP melaksanakan teknologi penyulitan asimetri RSA

PHP melaksanakan teknologi penyulitan asimetri RSA

WBOY
Lepaskan: 2023-06-18 09:36:01
asal
3779 orang telah melayarinya

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:

  1. Pilih dua nombor perdana besar p dan q, dan hitung produknya n = p*q; >Hitung φ (n) = (p-1)*(q-1); bahawa e dan d Memenuhi ed ≡ 1 (mod φ(n));
  2. Kunci awam ialah (n,e) dan kunci persendirian ialah (n,d);
  3. Apabila menyulitkan data, gunakan kunci awam e untuk menyulitkan, dan apabila menyahsulit data, gunakan d dalam kunci persendirian untuk menyahsulit.
  4. 2. Gunakan PHP untuk melaksanakan algoritma RSA
  5. Untuk menggunakan PHP untuk melaksanakan algoritma RSA, kita perlu menggunakan dua perpustakaan pihak ketiga yang penting: phpseclib dan OpenSSL. Yang pertama digunakan terutamanya untuk penyulitan bahagian hadapan, dan yang kedua digunakan untuk penyahsulitan latar belakang. Penggunaan kedua-dua perpustakaan ini diperkenalkan di bawah.
  6. Pustaka 2.1 phpseclib

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');
Salin selepas log masuk

Jana kunci awam dan peribadi:
  1. $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']);
    Salin selepas log masuk
Sulitkan menggunakan kunci awam:
  1. $data = 'hello, world';
    $rsa = new Crypt_RSA();
    $rsa->loadKey(file_get_contents('public_key.pem'));
    $ciphertext = $rsa->encrypt($data);
    Salin selepas log masuk
Nyahsulit menggunakan kunci persendirian:
  1. $rsa = new Crypt_RSA();
    $rsa->loadKey(file_get_contents('private_key.pem'));
    $plaintext = $rsa->decrypt($ciphertext);
    Salin selepas log masuk
  2. 2.2 Perpustakaan OpenSSL
    Pustaka OpenSSL ialah perpustakaan sumber terbuka yang mengandungi pelaksanaan pelbagai algoritma kriptografi dan protokol SSL/TLS. Dalam PHP, kita boleh menggunakan perpustakaan ini dengan memanjangkan perpustakaan openssl. Berikut ialah langkah untuk melaksanakan penyulitan RSA menggunakan OpenSSL:
Jana fail kunci peribadi:

$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");
Salin selepas log masuk

Jana fail kunci awam:
  1. $public_key = openssl_pkey_get_details($private_key);
    $public_key = $public_key["key"];
    file_put_contents("public.key", $public_key);
    Salin selepas log masuk
Gunakan kunci awam untuk menyulitkan:
  1. $data = 'hello, world';
    openssl_public_encrypt($data, $ciphertext, $public_key);
    Salin selepas log masuk
Gunakan kunci peribadi untuk menyahsulit:
  1. openssl_private_decrypt($ciphertext, $plaintext, $private_key);
    Salin selepas log masuk
    Ringkasan
      Gunakan PHP untuk melaksanakan teknologi penyulitan asimetri RSA boleh memberikan kami penyelesaian penghantaran dan perlindungan data yang lebih selamat dan boleh dipercayai. Artikel ini menerangkan langkah-langkah untuk melaksanakan algoritma RSA menggunakan phpseclib dan perpustakaan OpenSSL. Pembaca boleh memilih perpustakaan yang sesuai untuk pelaksanaan mengikut keperluan mereka sendiri. Apabila menggunakannya, keselamatan kunci persendirian harus dipastikan untuk mengelakkan data daripada diganggu dan dicuri secara haram.

    Atas ialah kandungan terperinci PHP melaksanakan teknologi penyulitan asimetri RSA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan