Az adattitkosítás php

Ebben a leírásban nem fogjuk figyelembe vesszük az összes elméleti szempontból az adatok titkosítása folyamatot, mivel ez szükségessé tenné egy pár óra. Tanulmányozni fogjuk csak az alapokat, de jobb lesz elég, hogy meg tudná titkosítja az adatokat, és azok dekódolás.

Encryption Kétféle: egyirányú - ha az adatok csak titkosítani és visszafejteni lehetetlen (például titkosítás MD5) és a kétirányú - ha lehetséges, hogyan kell adatokat titkosítani és visszafejteni. Ebben a leckében fogjuk használni a kétirányú titkosítás. Együttműködik titkosítást PHP nyelven tervezett nevű kiterjesztést mcrypt, amely lehetővé teszi, hogy titkosítja az adatokat a különböző titkosítási algoritmusokat (titkosítást).

Sietek azt mondani, hogy ez nem szükséges, hogy dolgozzon ki egy másik algoritmus.

Mivel az adatok titkosítását - a tudomány, és hozzon létre saját algoritmusok, akkor nem veszi figyelembe egy csomó más dolgot. Ami vezet a biztonsági rés a titkosított adatok és esetleg törés a támadók. A legjobb, hogy egy kész algoritmusok nagyon megbízhatóak, és hogy úgy mondjam, jól bevált. A titkosítási algoritmus - valójában a mód, ahogyan az adatok titkosítva.

Minden algoritmus támogatja több titkosítási mód. Encryption Mode - módszer alkalmazásával tömbrejtjelezésnél, amely lehetővé teszi, hogy megtérít egy blokksorozatnak forráskódot, amely titkosított a sorrendben titkosított adatok blokkok. Így a titkosítást is lehet használni más adat blokkokat. Te és én fogja használni az egyik legjobb kódolási mód - MCRYPT_MODE_CFB. Ez a mód, más néven visszacsatolási üzemmódban által rejtjelezett TE - egy változata a használata egy blokk rejtjel, ahol a titkosítás a következő nyílt szöveg blokk segítségével eredményeként titkosítására az előző blokkot.

Az adattitkosítás php

Az adattitkosítás php

Az adattitkosítás php

Most térjünk le az adattitkosítás.

adattitkosítás

Kezdésként hozzunk létre egy rövid űrlapot be szöveget titkosítását:

Mint látható - ez a leggyakoribb forma, és ez jelenik meg a böngészőben, mint ez:

Azaz, az adatokat be kell vinni a forma, felvesszük Önnel a kapcsolatot titkosítani, és megjeleníti a kódot. Ezután az alábbi is adódhatnak visszafejtése húr. Ezután hozzunk létre egy változót, amely tárolja a privát kulcs szükséges a titkosítási folyamatot, valamint az adatok dekódolására.

FONTOS. Ha a kulcs elveszett, az adatok megfejteni akkor nem lesz képes.

Ez a kulcs tárolható a konfigurációs fájlban, a lényeg, hogy lenne hozzá, de te, aki nem rendelkezik hozzáféréssel. Mivel nincs a konfigurációs felhúzó, akkor azt fogja létrehozni ezt a kulcsot index.php:

Kérjük, vegye figyelembe - ez a szokásos string véletlenszerű karaktereket. Önnek joga van megváltoztatni a saját belátása szerint. Tehát, ha jön az adatokat POST metódussal, akkor létrehozunk egy változót $ str tárolja benne az értéket a cella tömb.

Ezután meg kell nyitni a mcrypt modul:

Ehhez használjuk mcrypt_module_open szolgáltatás, amely megnyitja mcrypt modul megkezdéséhez a titkosítási folyamatot. Az átadott paramétereknek a függvénye:

MCRYPT_BLOWFISH - titkosító algoritmus;

„- ha az algoritmus nem szabványos, akkor ez a paraméter határozza meg az utat, hogy a titkosító algoritmus;

MCRYPT_MODE_CFB - titkosítási mód;

„- ha titkosítás nem szabványos, akkor ez a paraméter határozza meg az utat, hogy a titkosítási mód.

Ezután létre kell hozni egy inicializálóvektorból használt egyes algoritmus és minden egyes alkalommal - részeként a titkosítási folyamat - amely szerves részét képezi. A inicializálóvektorból jellemzi hosszú, így hagyja, és adjuk meg:

Amint láthatjuk, hogy meghatározza a hossza a inicializálóvektorból használt mcrypt_enc_get_iv_size () függvény, a paramétert kell átadni diskriptor nyitott modul mcrypt. Most, akkor létre kell hozni a vektor:

mcrypt_create_iv () függvény létrehoz egy inicializáló vektor. Paraméterek átadhatók: $ iv_size - vektor hosszát, MCRYPT_RAND - beszerzési mód inicializálóvektorból, ebben az esetben a generációs véletlen vektorok. Továbbá titkosítja az elején, meg kell nyitnia a vágólapra:

mcrypt_generic_init () függvény - megnyitja a vágólapra, amely szükséges a titkosítási folyamat. A paramétereket kell átadni a következő értékeket:

$ Td - diskriptor nyitott modul mcrypt;

$ Kulcs - privát kulcs, ami szükséges adatok titkosítása és visszafejtése őket;

$ Iv - inicializálóvektorból.

Most akkor titkosítja az adatokat:

Az erre a célra mcrypt_generic () függvény, ami valójában titkosítja az adatokat a kiválasztott titkosítási algoritmus és egy módot. Paraméterek a következő értékek átvitele: $ td - diskriptor nyitott modul mcrypt; $ Str - egy szöveget kell titkosítani. És ne felejtsük el, hogy lezárja a nyitott vágólapra, és mcrypt modul:

Most, hogy adjunk egy titkosított vonalon, kezdetben kapott inicializálóvektorból és levezetni a kódolt szöveg a képernyőn. De mielőtt megjelenítő kezelt base64_encode string () függvény, egyébként a képernyőn látunk egy csomó karakter nem olvasható.

Most lép szöveget hello world, és látni, mi van:

Az adattitkosítás php

Mint látható minden sikeres munka - mi az adatok titkosítására, most már megfejteni őket.

dekódolásra

Tehát meg kell, hogy van egy titkosított szöveg, hogy megy az első inicializálóvektorból, majd a tényleges adatok vonal, amit szeretne eljutni hozzánk. Ezért kell újra felfedezni a mcrypt modul és kap a méret a inicializálóvektorból:

Mint látható, a funkciókat használja ugyanazt, ugyanazokkal a paraméterekkel. Továbbá, a titkosított szöveg külön kell választani, és az inicializáló vektor adatsorból is. Ehhez te és én használni a méret a inicializálóvektorból és normál substr () függvényt. Így megkapjuk az inicializáló vektor:

Mint látható, egyszerűen kivágták a sor, nulla és a változó értékét $ iv_size1 (hossza a kezdeti vektor). Aztán kap egy húr az adatok:

Így van egy közvetlen vonal az adatokat (titkosított) és inicializálóvektorból. Szóval, mi is megfejteni ezt a fonalat. Ehhez nyissa meg a vágólapra, amely szintén szükséges az adatok dekódolására:

B okozza az adatok dekódolás funkció:

Ez a funkció dekódolja az adatokat. A paramétereket kell átadni a következő értékeket: $ td - diskriptor nyitott modul; , $ Crypt_text1 - egy string a titkosított adatokat. Ezután zárja le a vágólapra, nyitott mcrypt modul és megjeleníti az eredményeket a képernyőn:

Nézzük a mezőbe írja be mindegy string „hello world”, és nézd meg az eredményt:

Az adattitkosítás php

Mint látható az összes sikeresen működik. Mindenesetre, a teljes szöveg a script:

Ebben a leckében, akkor befejezem. Minden jót, sikeres kódolás! És találkozunk a következő órákat!

A legtöbb IT hírek és webfejlesztés A csatorna-távirat

Kapcsolódó cikkek