Dengan pembangunan berterusan Internet, keselamatan rangkaian semakin mendapat perhatian. Untuk memastikan keselamatan data, kami biasanya menyulitkan data penting. Dalam pembangunan web, kaedah penyulitan yang biasa digunakan termasuk md5, sha1, dsb. Walau bagaimanapun, kaedah penyulitan ini tidak lagi selamat, dan penyerang boleh memecahkan data yang disulitkan dengan mudah menggunakan kaedah seperti perengkahan kekerasan. Oleh itu, beberapa kaedah penyulitan baharu telah muncul, seperti kaedah penyulitan universal yang disediakan dalam php7.1. Artikel ini akan memperkenalkan cara menggunakan kaedah penyulitan universal php7.1.
- Pengenalan
Kaedah penyulitan universal, sambungan Sodium, ialah sambungan penyulitan yang disertakan dengan php7.1. Sambungan Sodium menyediakan satu set fungsi penyulitan selamat, termasuk penyulitan kunci awam, penyulitan AES, dll., untuk melindungi keselamatan data. Berbanding dengan kaedah penyulitan sebelumnya, sambungan Sodium adalah lebih selamat dan cekap. Algoritma penyulitan yang digunakan oleh sambungan Sodium ditetapkan oleh pakar kriptografi, dan keselamatannya terjamin.
- Pemasangan
Untuk menggunakan sambungan Sodium, anda perlu mendayakannya dalam fail php.ini. Dalam persekitaran Linux, anda boleh menggunakan arahan berikut untuk memasang:
$ sudo apt-get install libsodium-dev
Salin selepas log masuk
Selepas pemasangan selesai, anda boleh menambah konfigurasi berikut dalam php.ini:
extension=sodium.so
Salin selepas log masuk
- API
Sambungan sodium menyediakan satu siri fungsi API yang selamat, termasuk:
- sodium_crypto_secretbox — Gunakan algoritma XSalsa20-Poly1305 untuk menyulitkan mesej
- sodium_crypto_secretbox algoritma XSalsa20-Poly1305 untuk menyulitkan mesej Nyahsulit mesej
- sodium_crypto_box — Menyulitkan mesej menggunakan penyulitan kunci awam
- sodium_crypto_box_open — Menyahsulit mesej menggunakan penyulitan kunci awam
<_crypto_2015>aedium Gunakan algoritma AES -GCM untuk menyulitkan mesej- sodium_crypto_aead_aes256gcm_decrypt — Gunakan algoritma AES-GCM untuk menyahsulit mesej
-
Antaranya, sodium_crypto_secretbox_open dan sodium_crypto_box_openly digunakan untuk menyahsulit mesej. Fungsi lain digunakan untuk menyulitkan mesej.
Berikut ialah contoh kod untuk menggunakan sodium_crypto_secretbox untuk menyulitkan data:
<?php
$plaintext = 'Hello World';
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES); // 生成秘钥
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); // 生成随机数
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);
?>
Salin selepas log masuk
Dalam kod di atas, $plaintext ialah plaintext, $key ialah kunci penyulitan dan $nonce ialah rawak nombor. Fungsi sodium_crypto_secretbox menyulitkan $plaintext menggunakan algoritma XSalsa20-Poly1305 dan mengembalikan teks sifir yang disulitkan.
Keselamatan Kriptografi-
Apabila menggunakan sambungan Sodium untuk penyulitan, anda perlu memberi perhatian kepada keselamatan kriptografi. Beberapa langkah keselamatan adalah seperti berikut:
Gunakan kekunci rahsia berkekuatan tinggi, jangan gunakan kekunci terlalu mudah- Gunakan nombor rawak untuk setiap penyulitan, jangan gunakan nombor rawak yang sama
- Jangan gunakan algoritma penyulitan yang telah diserang Adalah disyorkan untuk menggunakan XSalsa20-Poly1305, AES-GCM dan algoritma lain
- Jangan laksanakan algoritma penyulitan secara manual, tetapi gunakan fungsi siap sedia <.>
-
Ringkasan
- Artikel ini memperkenalkan sambungan Sodium yang disediakan dalam php7.1. Sambungan Sodium menyediakan satu set fungsi API penyulitan selamat, termasuk penyulitan kunci awam, penyulitan AES, dll., untuk memastikan keselamatan aplikasi web. Algoritma penyulitan yang digunakan oleh sambungan Sodium adalah selamat dan boleh dipercayai, jadi ia adalah salah satu sambungan pilihan untuk penyulitan selamat dalam pembangunan web semasa. Apabila menggunakan sambungan Sodium untuk penyulitan, anda perlu memberi perhatian kepada keselamatan kriptografi untuk memastikan keselamatan data.
Atas ialah kandungan terperinci php7.1 kaedah penyulitan universal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!