cari
Rumahpembangunan bahagian belakangtutorial phpBagaimana untuk Menyulitkan dan Menyahsulit Rentetan PHP dengan Selamat Menggunakan Libsodium atau defuse/php-encryption?

How to Securely Encrypt and Decrypt PHP Strings Using Libsodium or defuse/php-encryption?

Menyulitkan dan Menyahsulit Rentetan PHP

Soalan:
Bagaimanakah kita boleh menyulitkan dan menyahsulit rentetan PHP, memerlukan kedua-dua rentetan asal dan garam atau kunci untuk kedua-duanya proses?

Jawapan:
Adalah penting untuk memahami perbezaan antara penyulitan dan pengesahan sebelum meneruskan. Untuk keselamatan yang teguh, kami mengesyorkan pengesahan yang disulitkan, yang memerlukan penyulitan dan kemudian pengesahan.

Elakkan membuat kriptografi anda sendiri; sebaliknya, gunakan perpustakaan yang boleh dipercayai yang dibangunkan oleh pakar kriptografi. Kami amat menasihati menggunakan libsodium atau defuse/php-encryption kerana kemudahan penggunaannya dan penyulitan disahkan terbina dalam.

Langkah Penyulitan:

  1. Gunakan AES dalam mod CTR untuk penyulitan.
  2. Sahkan teks sifir menggunakan HMAC-SHA-256 (atau Poly1305).

Langkah Penyahsulitan:

  1. Kira semula MAC teks sifir dan bandingkan dengan MAC asal . Batalkan jika terdapat ketidakpadanan.
  2. Teruskan penyahsulitan.

Pertimbangan Reka Bentuk:

  1. Elakkan memampatkan teks sifir.
  2. Gunakan mb_strlen() dan mb_substr() dengan mod set aksara '8bit'.
  3. Gunakan CSPRNG untuk menjana IV. Elakkan MCRYPT_RAND.
  4. Sentiasa menyulitkan sebelum mengesahkan (melainkan menggunakan AEAD).
  5. Berhati-hati dengan kelemahan pemasaan cache.

Bila Tidak Digunakan Penyulitan:

  • Storan kata laluan (gunakan algoritma pencincangan kata laluan seperti Argon2 sebaliknya)
  • Penyulitan parameter URL (alat yang tidak sesuai)

Libsodium PHP Contoh:

function safeEncrypt(string $message, string $key): string
{
    if (mb_strlen($key, '8bit') !== SODIUM_CRYPTO_SECRETBOX_KEYBYTES) {
        throw new RangeException('Key is not the correct size (must be 32 bytes).');
    }
    $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
    $cipher = base64_encode(
        $nonce.
        sodium_crypto_secretbox(
            $message,
            $nonce,
            $key
        )
    );
    return $cipher;
}

Penyahsulitan Libsodium:

function safeDecrypt(string $encrypted, string $key): string
{
    $decoded = base64_decode($encrypted);
    $nonce = mb_substr($decoded, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit');
    $ciphertext = mb_substr($decoded, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit');
    $plain = sodium_crypto_secretbox_open(
        $ciphertext,
        $nonce,
        $key
    );
    return $plain;
}

nyah/penyulitan php Contoh:

use Defuse\Crypto\Crypto;
use Defuse\Crypto\Key;

$message = 'We are all living in a yellow submarine';
$key = Key::createNewRandomKey();
$ciphertext = Crypto::encrypt($message, $key);
$plaintext = Crypto::decrypt($ciphertext, $key);

Atas ialah kandungan terperinci Bagaimana untuk Menyulitkan dan Menyahsulit Rentetan PHP dengan Selamat Menggunakan Libsodium atau defuse/php-encryption?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
E-mel PHP: Panduan Penghantaran Langkah demi LangkahE-mel PHP: Panduan Penghantaran Langkah demi LangkahMay 09, 2025 am 12:14 AM

PhpisusedforsendingemailsduetoitsintegrationWithservermailservicesandexternalsmtpproviders, automatingnotificationsandmarketingcampaigns.1) Setupyourphpenvironmentwithawebserverandphp, Memastikan

Cara Menghantar E -mel melalui PHP: Contoh & KodCara Menghantar E -mel melalui PHP: Contoh & KodMay 09, 2025 am 12:13 AM

Cara terbaik untuk menghantar e -mel ialah menggunakan perpustakaan phpmailer. 1) Menggunakan fungsi mel () adalah mudah tetapi tidak boleh dipercayai, yang boleh menyebabkan e -mel memasuki spam atau tidak dapat dihantar. 2) PHPMailer menyediakan kawalan dan kebolehpercayaan yang lebih baik, dan menyokong surat HTML, lampiran dan pengesahan SMTP. 3) Pastikan tetapan SMTP dikonfigurasi dengan betul dan penyulitan (seperti startTLS atau SSL/TLS) digunakan untuk meningkatkan keselamatan. 4) Untuk sejumlah besar e -mel, pertimbangkan untuk menggunakan sistem giliran mel untuk mengoptimumkan prestasi.

E -mel PHP Lanjutan: Headers & Ciri -ciri KustomE -mel PHP Lanjutan: Headers & Ciri -ciri KustomMay 09, 2025 am 12:13 AM

CustomheadersandadvancedfeaturesInphpeMailenhanceFunctialityandreliability.1) customHeadersAddmetadataFortrackingandCategorization.2) htmlemailsallowformattingIntivity.3)

Panduan untuk menghantar e -mel dengan PHP & SMTPPanduan untuk menghantar e -mel dengan PHP & SMTPMay 09, 2025 am 12:06 AM

Menghantar mel menggunakan PHP dan SMTP boleh dicapai melalui Perpustakaan PHPMailer. 1) Pasang dan konfigurasikan PHPMailer, 2) Tetapkan butiran pelayan SMTP, 3) Tentukan kandungan e -mel, 4) Hantar e -mel dan mengendalikan kesilapan. Gunakan kaedah ini untuk memastikan kebolehpercayaan dan keselamatan e -mel.

Apakah kaedah terbaik untuk menghantar e -mel menggunakan php?Apakah kaedah terbaik untuk menghantar e -mel menggunakan php?May 08, 2025 am 12:21 AM

Thebestapproachforsendingemailsinphpisusingthephpmaillibraryduetoitsreliability, featureRichness, andeaseofuse.phpmailersupportssmtp, proveddetaileDerrorHandling, membolehkanSendsendingHtmlandPlainteMails, supportsattachments, danStoVeShanCess

Amalan terbaik untuk suntikan ketergantungan dalam phpAmalan terbaik untuk suntikan ketergantungan dalam phpMay 08, 2025 am 12:21 AM

Alasan untuk menggunakan suntikan ketergantungan (DI) ialah ia menggalakkan gandingan longgar, kebolehlihatan, dan pemeliharaan kod. 1) Gunakan pembina untuk menyuntik kebergantungan, 2) Elakkan menggunakan pencari perkhidmatan, 3) Gunakan bekas suntikan ketergantungan untuk menguruskan kebergantungan, 4) meningkatkan kesesuaian melalui suntikan suntikan, 5) Elakkan kebergantungan over-suntikan, 6) Pertimbangkan kesan DI terhadap prestasi.

Petua Penalaan Prestasi PHPPetua Penalaan Prestasi PHPMay 08, 2025 am 12:20 AM

Phpperformancetuningiscrucialbecauseitenhancesspeedandeficiency, whoarevitalforwebapplications.1) cachingwithapcureSdatabaseloadandimprovesresponsetimes.2)

Keselamatan e -mel PHP: Amalan terbaik untuk menghantar e -melKeselamatan e -mel PHP: Amalan terbaik untuk menghantar e -melMay 08, 2025 am 12:16 AM

TthebestpracticesforDailssecureeleynpinceDudududude: 1) usingSecureConfigurationsatiationswithsmtpandStartTartTlSencrryption, 2) vactrentatiatingIsTitionputStopReventInJectaCtAtactaSs, 3) engrypTyptingSensensitiVIdAdAlsHAlSiSsSenSsensSl ,SsengsSenSsensSl ,SsengSiSsSSSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSssSsSsSsSsSsSsSsSsSsSsSsSsSsSsSsSSSSsSSSSSSSSSHAsSsSSSSSHAsSsSengs.)

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.