Paano I-encrypt at I-decrypt ang String sa PHP?

Paano I Encrypt At I Decrypt Ang String Sa Php



Pag-encrypt ay ang proseso ng pag-convert ng data sa isang lihim na code o isang format na hindi mauunawaan ng sinumang walang susi sa pag-decode nito. Pag-decryption ay ang pamamaraan para sa pagkuha ng impormasyong iyon at ibalik ito sa orihinal at nababasa nitong format. Sa PHP, pag-encrypt, at decryption ay maaaring gamitin upang protektahan ang sensitibong data, tulad ng mga password, impormasyon ng credit card, at iba pang personal na data.

Ang pag-encrypt algorithm ay dapat kumuha ng isang string ng data na gusto mong i-encrypt at gamitin ang napiling paraan ng pag-encrypt upang i-encrypt ang data. Dapat ibalik ng algorithm ang naka-encrypt na data sa isang format na maaari mong iimbak sa isang database o file.

Upang i-decrypt ang data, dapat mong gamitin ang parehong paraan ng pag-encrypt upang i-decrypt ang data na ginamit upang i-encrypt ito. Nangangahulugan ito na kakailanganin mong iimbak ang susi sa isang lugar upang magamit mo ito sa pag-decode ng data sa ibang pagkakataon.







Paano I-encrypt at I-decrypt ang isang PHP String?

Ang isang PHP string ay maaaring naka-encrypt at decrypted gamit ang openssl_encrpyt() at openssl_decrypt() pamamaraan, ayon sa pagkakabanggit.



I-encrypt ang isang String Gamit ang openssl_encrypt() Function

Upang i-encrypt ang isang string sa PHP gamit ang openssl_encrypt() function, kailangan mong ibigay ang plaintext string, ang paraan ng pag-encrypt, at isang susi. Ibabalik ng function ang naka-encrypt na data, na maaari mong iimbak o ipadala nang ligtas.



Ang syntax para sa openssl_encrypt() ang pamamaraan ay:





string openssl_encrypt ( string $data , string $paraan , string $key , $opsyon = 0 , string $iv , string $tag = WALA , string $ikaw , int $tag_length = 16 )
  • $data: Ang string o data na gusto mong i-encrypt.
  • $paraan: Ang paraan ng pag-encrypt o cipher na gusto mong gamitin. Makakakuha ka ng listahan ng mga sinusuportahang pamamaraan ng cipher sa pamamagitan ng paggamit ng openssl_get_cipher_methods()
  • $key: Ang encryption key na gagamitin para i-encrypt ang data. Dapat itong isang string ng naaangkop na haba at randomness, batay sa napiling paraan ng cipher.
  • $options: Isang opsyonal na parameter na maaaring magsama ng mga karagdagang flag para sa mga partikular na opsyon sa pag-encrypt. Maaari mong pagsamahin ang mga flag gamit ang bitwise O (|) Kasama sa mga karaniwang flag OPENSSL_RAW_DATA at OPENSSL_ZERO_PADDING .
  • $iv: Ang initialization vector (iv) na ginagamit para sa pag-encrypt; ito ay dapat na isang random at natatanging halaga, na ibinigay bilang isang string.
  • $tag: Isang opsyonal na parameter na ginagamit para sa mga cipher mode ng AEAD (Authenticated Encryption with Associated Data), gaya ng GCM (Galois/Counter Mode) o CCM (Counter with CBC-MAC). Iniimbak nito ang authentication tag na nabuo sa panahon ng pag-encrypt.
  • Iyong: Karagdagang na-authenticate na data na maaaring magamit para sa mga AEAD cipher mode.
  • $tag_length: Ang haba ng authentication tag. Para sa GCM mode, ang haba ng tag ay mula 4 hanggang 16 bytes.

Halimbawa:


$simple_string = 'Maligayang pagdating sa Linuxhint \n ' ;
echo 'Orihinal na String:' . $simple_string ;
$ciphering = 'AES-128-CTR' ;
$iv_length = openssl_cipher_iv_length ( $ciphering ) ;
$opsyon = 0 ;
$encryption_iv = '1234567891011121' ;
$encryption_key = 'Linux' ;
$encryption = openssl_encrypt ( $simple_string , $ciphering ,
$encryption_key , $opsyon , $encryption_iv ) ;
echo 'Naka-encrypt na String: ' . $encryption . ' \n ' ;
?>

Ang code ay unang nagdedeklara ng pangunahing teksto “Maligayang pagdating sa Linuxhint” at ginagamit ang echo command upang ipakita ito. Pagkatapos, tinutukoy nito ang algorithm ng pag-encrypt na gagamitin, AES-128-CTR . Ginagamit din nito ang openssl_cipher_iv_length() function upang makalkula ang laki ng initialization vector (IV) kailangan para sa cipher na ito.



Itinatakda ng code ang pag-encrypt iv halaga sa '1234567891011121' at ang encryption key sa 'Linux' . Ipapakita ang naka-encrypt na string gamit ang echo command kapag nakumpleto na ang pag-encrypt gamit ang openssl_encrypt() function. Dahil sa random na initialization vector na ginagamit para sa pag-encrypt, ang huling naka-encrypt na string ay mag-iiba sa bawat oras.

I-decrypt ang isang String Gamit ang openssl_decrypt() Function

Upang i-decrypt ang isang string sa PHP, maaari mong gamitin ang openssl_decrypt() function. Kinukuha ng function na ito ang naka-encrypt na data, ang paraan ng pag-encrypt, at ang susi bilang mga input at ibinabalik ang decrypted na plaintext.

Ang syntax para sa openssl_decrypt() ang pamamaraan ay:

string openssl_decrypt ( string $data , string $paraan , string $key , int $opsyon = 0 , string $iv , string $tag , string $ikaw )

Ang mga argumento na ipinasa sa function ay:

  • $data: Ang naka-encrypt na string o data na gusto mong i-decrypt.
  • $paraan: Ang paraan ng pag-encrypt o cipher na ginagamit sa panahon ng pag-encrypt. Makakakuha ka ng listahan ng mga sinusuportahang pamamaraan ng cipher sa pamamagitan ng paggamit ng openssl_get_cipher_methods()
  • $key: Ang encryption key na ginamit para i-encrypt ang data. Dapat itong tumugma sa susi na ginamit sa panahon ng pag-encrypt.
  • $options: Isang opsyonal na parameter na maaaring magsama ng mga karagdagang flag para sa mga partikular na opsyon sa pag-decryption. Maaari mong pagsamahin ang mga flag gamit ang bitwise OR (|) operator. Kasama sa mga karaniwang flag OPENSSL_RAW_DATA at OPENSSL_ZERO_PADDING .
  • $iv: Ang initialization vector (IV) ginagamit sa panahon ng pag-encrypt. Ito ay dapat ang parehong IV na ginamit sa panahon ng pag-encrypt at ipinasa bilang isang string.
  • $tag: Ang authentication tag para sa AEAD (Authenticated Encryption with Associated Data) cipher mode, gaya ng GCM (Galois/Counter Mode) o CCM (Counter with CBC-MAC). Kung nabigo ang pagpapatunay, ang openssl_decrypt() ay magbabalik ng FALSE.
  • Iyong: Karagdagang na-authenticate na data na ginamit sa panahon ng pag-encrypt para sa mga AEAD cipher mode.

Halaga ng Pagbabalik: Kung matagumpay, ibabalik nito ang na-decrypt na string; kung hindi, ito ay nagbabalik ng FALSE.

Halimbawa:


$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
echo 'Naka-encrypt na String: ' . $encrypted_string . ' \n ' ;
$decryption_iv = '1234567891011121' ;
$ciphering = 'AES-128-CTR' ;
$opsyon = 0 ;
$decryption_key = 'Linux' ;
$decryption = openssl_decrypt ( $encrypted_string , $ciphering ,
$decryption_key , $opsyon , $decryption_iv ) ;
echo 'Na-decrypted na String: ' . $decryption ;
?>

Ang haba ng vector sa code na ito ay kinakalkula gamit ang openssl_cipher_iv_length() function, at ang parehong pag-encrypt iv at mga pangunahing parameter ay ginagamit sa panahon ng pag-encrypt. Ang ciphering algorithm ay tinukoy bilang AES-128-CTR .

Ang dating naka-encrypt na string ay nade-decrypt gamit ang ciphering algorithm, encryption key, mga setting, at IV value ng openssl_decrypt() function. Ang resultang na-decrypt na text ay ipapakita gamit ang echo command.

Konklusyon

Ang paglikha ng mga website ay madalas na nagsasangkot pag-encrypt at pag-decrypting datos. Sa pamamagitan ng paggamit ng encryption upang protektahan ang sensitibong data, maiiwasan mong ilantad ang iyong mga user sa pagnanakaw ng pagkakakilanlan, panloloko, at iba pang banta sa seguridad. Ang mga string sa PHP ay maaaring i-encrypt at i-decrypt ng mga function openssl_encrypt() at openssl_decrypt() mga function. Sa pamamagitan ng maingat na paggamit ng encryption algorithm at key, maaari kang lumikha ng isang matatag at secure na sistema para sa paghawak ng sensitibong data sa iyong mga PHP application.