Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menyulitkan dan menyahsulit data dalam PHP?

Bagaimana untuk menyulitkan dan menyahsulit data dalam PHP?

May 12, 2023 am 08:07 AM
algoritma penyulitan php fungsi penyulitan data php fungsi penyahsulitan data php

PHP ialah bahasa pengaturcaraan bahagian pelayan sumber terbuka yang digunakan secara meluas dalam bidang pembangunan web. Memandangkan aplikasi web sering melibatkan maklumat sensitif pengguna, seperti kata laluan, nombor kad bank, dsb., adalah amat penting untuk menyulitkan dan menyahsulit maklumat ini.

Artikel ini akan memperkenalkan cara menyulitkan dan menyahsulit data dalam PHP, terutamanya termasuk kandungan berikut:

  1. Algoritma penyulitan yang biasa digunakan dan ciri-cirinya
  2. Digunakan dalam PHP Penyulitan MD5
  3. Gunakan penyulitan sha1 dalam PHP
  4. Gunakan pengekodan base64 dalam PHP
  5. Gunakan perpustakaan sambungan openssl dalam PHP untuk penyulitan dan penyahsulitan AES
  6. Langkah-langkah untuk menggunakan perpustakaan sambungan mcrypt untuk penyulitan dan penyahsulitan AES dalam PHP

1 Algoritma penyulitan yang biasa digunakan dan ciri-cirinya

  1. Algoritma MD5: ringkasan mesej yang biasa digunakan Algoritma memetakan a. rentetan daripada sebarang panjang ke dalam nilai output 128-bit dan digunakan secara meluas dalam bidang seperti penyulitan data dan tandatangan elektronik.

Ciri-ciri: Algoritma MD5 tidak boleh diterbalikkan, iaitu nilai input tidak boleh disimpulkan daripada nilai output algoritma MD5 memastikan bahawa nilai output input yang sama adalah sama; mudah retak oleh serangan perlanggaran.

  1. Algoritma SHA1: Algoritma cincang selamat, serupa dengan MD5, yang memetakan rentetan dengan sebarang panjang ke dalam nilai output 160-bit, dengan keupayaan keselamatan dan antiperlanggaran yang baik.

Ciri: Algoritma SHA1 tidak boleh diterbalikkan; panjang nilai output algoritma SHA1 lebih panjang daripada algoritma MD5, memastikan keselamatan yang lebih baik tidak dapat menghalang serangan perlanggaran sepenuhnya;

  1. pengekodan base64: Kaedah pengekodan yang mengekod data perduaan ke dalam aksara ASCII yang boleh dibaca secara meluas Ia digunakan secara meluas dalam e-mel, protokol HTTP dan medan lain.

Ciri-ciri: pengekodan base64 bukan algoritma penyulitan sebenar, hanya kaedah pengekodan base64 tidak mengubah kandungan data, tetapi hanya mengubah perwakilan data yang boleh meningkatkan kestabilan penghantaran data dan keselamatan.

  1. Algoritma AES: Piawaian Penyulitan Lanjutan, algoritma penyulitan simetri yang digunakan untuk melindungi keselamatan data seperti maklumat sensitif. Algoritma AES dibahagikan kepada tiga panjang kunci: 128 bit, 192 bit dan 256 bit.

Ciri-ciri: Algoritma AES ialah penyulitan simetri, dan kunci yang sama digunakan untuk penyulitan dan penyahsulitan; algoritma AES mempunyai keselamatan dan kecekapan yang lebih baik; lebih tinggi keselamatannya.

2. Gunakan penyulitan MD5 dalam PHP

Gunakan fungsi md5() dalam PHP untuk menyulitkan rentetan dengan MD5 Kod sampel adalah seperti berikut:

$str = "hello world";
$encrypted_str = md5($str);
echo $encrypted_str;
Salin selepas log masuk

Hasil output ialah:

5eb63bbbe01eeed093cb22bb8f5acdc3
Salin selepas log masuk

3. Gunakan penyulitan sha1 dalam PHP

Gunakan fungsi sha1() dalam PHP untuk menyulitkan rentetan SHA1 adalah seperti berikut:

rreee

The hasil output ialah :

$str = "hello world";
$encrypted_str = sha1($str);
echo $encrypted_str;
Salin selepas log masuk

4. Gunakan pengekodan base64 dalam PHP

Gunakan fungsi base64_encode() dalam PHP untuk mengekod rentetan base64 dan gunakan fungsi base64_decode() untuk mengekod rentetan base64 . Penyahkodan, kod sampel adalah seperti berikut:

2ef7bde608ce5404e97d5f042f95f89f1c232871
Salin selepas log masuk

5. Gunakan perpustakaan sambungan openssl dalam PHP untuk penyulitan dan penyahsulitan AES

Gunakan perpustakaan sambungan openssl dalam PHP untuk melaksanakan penyulitan dan penyahsulitan AES data, kod sampel Seperti berikut:

$str = "hello world";
$encoded_str = base64_encode($str);
echo $encoded_str . "
";  // 输出:aGVsbG8gd29ybGQ=
$decoded_str = base64_decode($encoded_str);
echo $decoded_str;    // 输出:hello world
Salin selepas log masuk

Hasil output ialah:

// AES加密
function encrypt($str, $key) {
    $iv_size = openssl_cipher_iv_length('AES-256-CBC');
    $iv = openssl_random_pseudo_bytes($iv_size);   // 生成随机IV
    $encrypted_str = openssl_encrypt($str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    $result = base64_encode($iv . $encrypted_str);
    return $result;
}

// AES解密
function decrypt($encrypted_str, $key) {
    $encrypted_str = base64_decode($encrypted_str);
    $iv_size = openssl_cipher_iv_length('AES-256-CBC');
    $iv = substr($encrypted_str, 0, $iv_size);
    $encrypted_str = substr($encrypted_str, $iv_size);
    $result = openssl_decrypt($encrypted_str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return $result;
}

// 测试代码
$key = "12345678901234567890123456789012";   // AES密钥,32位
$str = "hello world";
$encrypted_str = encrypt($str, $key);
echo $encrypted_str . "
";
$decrypted_str = decrypt($encrypted_str, $key);
echo $decrypted_str . "
";
Salin selepas log masuk

6. Langkah-langkah untuk menggunakan perpustakaan sambungan mcrypt untuk penyulitan dan penyahsulitan AES dalam PHP

Gunakan perpustakaan sambungan mcrypt untuk penyulitan dan penyahsulitan AES Langkah-langkah untuk penyahsulitan adalah seperti berikut:

  1. Muatkan perpustakaan sambungan mcrypt
7KdkeT91N7zg8WZrZ1Oehg==xsYlbGhMF8dNQXH1LqTwVw==
hello world
Salin selepas log masuk
  1. Jana IV rawak
extension_loaded('mcrypt');  // 检查是否已经加载mcrypt扩展库
Salin selepas log masuk
  1. Gunakan fungsi mcrypt_encrypt( ) untuk penyulitan AES
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
Salin selepas log masuk
  1. Gunakan fungsi mcrypt_decrypt() untuk penyahsulitan AES
rreee
  1. Gunakan fungsi base64_encode() untuk mengekodkan base64 data yang disulitkan
$encrypted_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);
Salin selepas log masuk
  1. Gunakan fungsi substr() untuk memintas bahagian IV dan teks sifir dalam data yang disulitkan
$decrypted_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_str, MCRYPT_MODE_CBC, $iv);
Salin selepas log masuk

Kod sampel penyulitan dan penyahsulitan AES yang lengkap adalah seperti berikut:

$encrypted_str = base64_encode($iv . $encrypted_str);
Salin selepas log masuk

Hasil output ialah:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = substr($encrypted_str, 0, $iv_size);
$encrypted_str = substr($encrypted_str, $iv_size);
Salin selepas log masuk

Ringkasan:

Di atas ialah kaedah data penyulitan dan penyahsulitan dalam PHP Algoritma penyulitan yang berbeza mempunyai ciri-ciri yang berbeza dan senario yang boleh digunakan hendaklah memilih kaedah penyulitan yang sesuai berdasarkan keperluan sebenar dan keperluan keselamatan. Semasa menggunakan kaedah penyulitan, anda juga perlu memberi perhatian kepada perlindungan keselamatan kunci dan proses penyulitan untuk mengelak daripada diserang oleh penggodam.

Atas ialah kandungan terperinci Bagaimana untuk menyulitkan dan menyahsulit data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Apr 03, 2025 am 12:04 AM

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Terangkan konsep pengikatan statik lewat dalam PHP. Terangkan konsep pengikatan statik lewat dalam PHP. Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Apr 01, 2025 pm 03:12 PM

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Mar 28, 2025 pm 05:11 PM

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Bagaimana cara debug mod CLI dalam phpstorm? Bagaimana cara debug mod CLI dalam phpstorm? Apr 01, 2025 pm 02:57 PM

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

See all articles