Hogyan lehet titkosítani és visszafejteni a karakterláncot PHP-ben?

Hogyan Lehet Titkositani Es Visszafejteni A Karakterlancot Php Ben



Titkosítás az a folyamat, amelynek során az adatokat titkos kódba vagy olyan formátumba konvertálják, amely nem érthető azok számára, akiknek nincs kulcsa a dekódoláshoz. Dekódolás az információ felvételének és az eredeti, olvasható formátumba való visszaállításának eljárása. PHP-ben, Titkosítás, és dekódolás érzékeny adatok, például jelszavak, hitelkártyaadatok és egyéb személyes adatok védelmére használható.

A Titkosítás Az algoritmusnak be kell vennie a titkosítani kívánt adatsort, és a választott titkosítási módszert kell használnia az adatok titkosításához. Az algoritmusnak ezután olyan formátumban kell visszaadnia a titkosított adatokat, amelyet adatbázisban vagy fájlban tárolhat.

Nak nek visszafejteni az adatokat, ugyanazt a titkosítási módszert kell használnia a titkosításhoz használt adatok visszafejtéséhez. Ez azt jelenti, hogy a kulcsot valahol el kell tárolnia, hogy később felhasználhassa az adatok dekódolásához.







Hogyan lehet titkosítani és visszafejteni egy PHP karakterláncot?

Egy PHP karakterlánc lehet titkosítva és visszafejtve használni a openssl_encrpyt() és openssl_decrypt() módszerek, ill.



Karakterlánc titkosítása az openssl_encrypt() függvény használatával

Nak nek egy karakterlánc titkosítása PHP-ben a openssl_encrypt() függvényt, meg kell adnia az egyszerű szöveges karakterláncot, a titkosítási módszert és egy kulcsot. A funkció visszaküldi a titkosított adatokat, amelyeket ezután biztonságosan tárolhat vagy továbbíthat.



A szintaxis a számára openssl_encrypt() a módszer a következő:





karakterlánc openssl_encrypt ( húr $adat , húr $módszer , húr $kulcs , $opciók = 0 , húr $iv , húr $tag = NULLA , húr $ téged , int $tag_length = 16 )
  • $adat: A titkosítani kívánt karakterlánc vagy adat.
  • $módszer: A használni kívánt titkosítási módszer vagy titkosítás. A támogatott titkosítási módszerek listáját a openssl_get_cipher_methods()
  • $kulcs: Az adatok titkosításához használt titkosítási kulcs. Megfelelő hosszúságú és véletlenszerű karakterláncnak kell lennie, a választott titkosítási módszer alapján.
  • $options: Opcionális paraméter, amely további jelzőket tartalmazhat bizonyos titkosítási beállításokhoz. A zászlókat kombinálhatja a bitenként VAGY (|) A gyakori zászlók közé tartozik OPENSSL_RAW_DATA és OPENSSL_ZERO_PADDING .
  • $iv: A titkosításhoz használt inicializálási vektor (iv); véletlenszerű és egyedi értéknek kell lennie, karakterláncként megadva.
  • $tag: Opcionális paraméter, amelyet az AEAD (hitelesített titkosítás társított adatokkal) titkosítási módokhoz használnak, például GCM (Galois/Counter Mode) vagy CCM (Counter with CBC-MAC). A titkosítás során generált hitelesítési címkét tárolja.
  • A te: További hitelesített adatok, amelyek az AEAD titkosítási módokhoz használhatók.
  • $tag_length: A hitelesítési címke hossza. GCM módban a címke hossza 4 és 16 bájt között van.

Például:


$egyszerű_karakterlánc = 'Üdvözöljük a Linuxhintben \n ' ;
visszhang 'Eredeti karakterlánc:' . $egyszerű_karakterlánc ;
$cifrázás = 'AES-128-CTR' ;
$iv_length = openssl_cipher_iv_length ( $cifrázás ) ;
$options = 0 ;
$titkosítás_iv = „1234567891011121” ;
$titkosító_kulcs = 'Linux' ;
$titkosítás = openssl_encrypt ( $egyszerű_karakterlánc , $cifrázás ,
$titkosító_kulcs , $opciók , $titkosítás_iv ) ;
visszhang 'Titkosított karakterlánc:' . $titkosítás . ' \n ' ;
?>

A kód először deklarálja az alapszöveget „Üdvözöljük a Linuxhintben” és az echo parancsot használja ennek megjelenítésére. Ezután meghatározza a használandó titkosítási algoritmust, AES-128-CTR . Azt is használja a openssl_cipher_iv_length() függvény a méretének kiszámításához inicializálási vektor (IV) szükséges ehhez a titkosításhoz.



A kód beállítja a titkosítást iv értéket „1234567891011121” és a titkosítási kulcsot 'Linux' . A titkosított karakterlánc ezután megjelenik az echo paranccsal, miután a titkosítás befejeződött a openssl_encrypt() funkció. A titkosításhoz használt véletlenszerű inicializálási vektor miatt a végső titkosított karakterlánc minden alkalommal változik.

Karakterlánc visszafejtése openssl_decrypt() függvény segítségével

Egy karakterlánc visszafejtéséhez PHP-ben használhatja a openssl_decrypt() funkció. Ez a funkció a titkosított adatokat, a titkosítási módszert és a kulcsot veszi be bemenetként, és visszaadja a visszafejtett egyszerű szöveget.

A szintaxis a számára openssl_decrypt() a módszer a következő:

karakterlánc openssl_decrypt ( húr $adat , húr $módszer , húr $kulcs , int $opciók = 0 , húr $iv , húr $tag , húr $ téged )

A függvénynek átadott argumentumok a következők:

  • $adat: A visszafejteni kívánt titkosított karakterlánc vagy adat.
  • $módszer: A titkosítás során használt titkosítási módszer vagy rejtjel. A támogatott titkosítási módszerek listáját a openssl_get_cipher_methods()
  • $kulcs: Az adatok titkosításához használt titkosítási kulcs. Meg kell egyeznie a titkosítás során használt kulccsal.
  • $options: Opcionális paraméter, amely további jelzőket tartalmazhat bizonyos visszafejtési beállításokhoz. A jelzőket a bitenkénti VAGY (|) operátorral kombinálhatja. A gyakori zászlók közé tartozik OPENSSL_RAW_DATA és OPENSSL_ZERO_PADDING .
  • $iv: A inicializálási vektor (IV) titkosítás során használják. Ugyanannak az IV-nek kell lennie, mint amelyet a titkosítás során használtak és karakterláncként adtak át.
  • $tag: Az AEAD (hitelesített titkosítás társított adatokkal) titkosítási módokhoz, például a GCM (Galois/Counter Mode) vagy CCM (Counter with CBC-MAC) hitelesítési címkéje. Ha a hitelesítés sikertelen, az openssl_decrypt() FALSE értéket ad vissza.
  • A te: További hitelesített adatok, amelyeket az AEAD titkosítási módok titkosítása során használtak.

Visszatérési érték: Ha sikeres, visszaadja a visszafejtett karakterláncot; ellenkező esetben FALSE-t ad vissza.

Például:


$titkosított_karakterlánc = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
visszhang 'Titkosított karakterlánc:' . $titkosított_karakterlánc . ' \n ' ;
$decryption_iv = „1234567891011121” ;
$cifrázás = 'AES-128-CTR' ;
$opciók = 0 ;
$decryption_key = 'Linux' ;
$dekódolás = openssl_decrypt ( $titkosított_karakterlánc , $cifrázás ,
$decryption_key , $opciók , $decryption_iv ) ;
visszhang 'Dekódolt karakterlánc:' . $dekódolás ;
?>

Ebben a kódban a vektor hosszát a openssl_cipher_iv_length() függvényt, és ugyanazokat a titkosítási iv és kulcsparamétereket használják a titkosítás során. A titkosítási algoritmus a következőképpen van meghatározva AES-128-CTR .

A korábban titkosított karakterláncot a titkosítási algoritmus, a titkosítási kulcs, a beállítások és az IV értékek segítségével dekódolja a openssl_decrypt() funkció. Az eredményül kapott dekódolt szöveg ezután megjelenik az echo paranccsal.

Következtetés

A weboldalak létrehozása gyakran magában foglalja titkosítás és visszafejtés adat. Ha titkosítást használ az érzékeny adatok védelmére, elkerülheti, hogy a felhasználók személyazonosság-lopásnak, csalásnak és más biztonsági fenyegetéseknek legyenek kitéve. A PHP-ben lévő karakterláncok titkosíthatók és visszafejthetők a függvényekkel openssl_encrypt() és openssl_decrypt() funkciókat. A titkosítási algoritmus és kulcs körültekintő alkalmazásával robusztus és biztonságos rendszert hozhat létre PHP-alkalmazásaiban lévő érzékeny adatok kezelésére.