


Bagaimana untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA menggunakan PHP dan GMP
Cara melaksanakan algoritma penyulitan dan penyahsulitan RSA menggunakan PHP dan GMP
Algoritma penyulitan RSA ialah algoritma penyulitan asimetri yang digunakan secara meluas dalam bidang keselamatan maklumat. Dalam aplikasi praktikal, selalunya perlu menggunakan bahasa pengaturcaraan untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA. PHP ialah bahasa skrip sebelah pelayan yang biasa digunakan, dan GMP (GNU Multiple Precision) ialah perpustakaan pengiraan matematik berketepatan tinggi yang boleh membantu kami melaksanakan operasi nombor besar yang diperlukan dalam algoritma RSA. Artikel ini akan memperkenalkan cara menggunakan perpustakaan PHP dan GMP untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA.
1. Hasilkan kunci awam dan peribadi RSA
Pertama, kita perlu menjana kunci awam dan peribadi yang diperlukan untuk algoritma RSA. Dalam PHP, anda boleh menggunakan sambungan openssl untuk penjanaan pasangan kunci RSA. Kod khusus adalah seperti berikut: Kunci awam dan kunci peribadi yang dijana oleh
// 生成RSA公钥和私钥 $config = array( "private_key_bits" => 1024, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); $openssl_res = openssl_pkey_new($config); openssl_pkey_export($openssl_res, $private_key); // 导出私钥 $details = openssl_pkey_get_details($openssl_res); $public_key = $details['key']; // 获取公钥
disimpan dalam pembolehubah $public_key dan $private_key masing-masing.
2. Pelaksanaan penyulitan dan algoritma penyahsulitan RSA
Seterusnya, kami akan menggunakan perpustakaan GMP untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA. Pustaka GMP ialah sambungan terbina dalam PHP yang boleh digunakan untuk melaksanakan operasi nombor besar. Kod khusus adalah seperti berikut:
// 使用RSA公钥对消息进行加密 function rsa_encrypt($message, $public_key) { // 将公钥转为GMP对象 $public_key = str_replace(array("-----BEGIN PUBLIC KEY-----", "-----END PUBLIC KEY-----", " ", ""), '', $public_key); $public_key = base64_decode($public_key); $public_key_resource = openssl_pkey_get_public($public_key); $key_details = openssl_pkey_get_details($public_key_resource); $n = gmp_init(base64_encode($key_details['rsa']['n']), 64); $e = gmp_init(base64_encode($key_details['rsa']['e']), 64); // 将消息转为整数 $message = gmp_init($message, 62); // 使用公钥进行加密 $cipher = gmp_powm($message, $e, $n); return gmp_strval($cipher, 16); } // 使用RSA私钥对密文进行解密 function rsa_decrypt($cipher, $private_key) { // 将私钥转为GMP对象 $private_key = str_replace(array("-----BEGIN PRIVATE KEY-----", "-----END PRIVATE KEY-----", " ", ""), '', $private_key); $private_key = base64_decode($private_key); $private_key_resource = openssl_pkey_get_private($private_key); $key_details = openssl_pkey_get_details($private_key_resource); $n = gmp_init(base64_encode($key_details['rsa']['n']), 64); $d = gmp_init(base64_encode($key_details['rsa']['d']), 64); // 将密文转为整数 $cipher = gmp_init($cipher, 16); // 使用私钥进行解密 $message = gmp_powm($cipher, $d, $n); return gmp_strval($message, 62); }
Gunakan fungsi rsa_encrypt
函数可以对消息进行加密,而使用rsa_decrypt
dalam kod di atas untuk menyahsulit teks sifir.
3. Contoh Aplikasi
Berikut ialah contoh mudah untuk menunjukkan penggunaan algoritma penyulitan dan penyahsulitan RSA.
// 加密和解密的示例消息 $message = "Hello, RSA!"; echo "原始消息: " . $message . " "; // 使用公钥加密消息 $cipher = rsa_encrypt($message, $public_key); echo "加密后的密文: " . $cipher . " "; // 使用私钥解密密文 $decrypted = rsa_decrypt($cipher, $private_key); echo "解密后的消息: " . $decrypted . " ";
Jalankan kod di atas, output adalah seperti berikut:
原始消息: Hello, RSA! 加密后的密文: 13ce3415abb51e030f212fd810b37d9d985ea569f053aef8bfba8059cc742be979c1341f3acfdc62343627c76a38a40c5193cac3e9b383f3974d79b079542e603 解密后的消息: Hello, RSA!
Melalui contoh di atas, kita dapat melihat pelaksanaan algoritma penyulitan dan penyahsulitan RSA. Perlu diingatkan bahawa dalam aplikasi praktikal, operasi seperti pencincangan mesej dan tandatangan digital biasanya diperlukan untuk memastikan integriti dan kebolehpercayaan data.
Ringkasan:
Artikel ini menerangkan cara menggunakan perpustakaan PHP dan GMP untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA. Dengan menjana kunci awam dan peribadi RSA, dan menggabungkan dengan perpustakaan GMP untuk operasi nombor besar, kami boleh melaksanakan fungsi penyulitan dan penyahsulitan RSA dengan mudah. Saya harap artikel ini dapat membantu pembaca memahami dan menggunakan algoritma penyulitan RSA.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA menggunakan PHP dan GMP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
