Katika somo hili utakwenda kujifunza jinsi ya kufanya encryption na decryption kwa kutumia PHP. hii itakusaidia kuongeza usalama kwenye taarifa za watu
KUFICHA NA KUFICHUWA TAARIFA (ENCRYPTION AND DECRYPTION)
KUFANYA ENCRYPTION
Matumizi ya msingi ya encryption ni kwenye password,hata hivyo inaweza kutumika kwenye maeneo mengi. Changamoto ya hashing ni kuwa huwezi kurudisha katika hali ya asili. Hivyo sio vyema kufanya hashing email za watu ambazo utazihitaji kwa matumizi mengine. Hivyo basi ili kuficha email na taarifa zingine ambazo unahitaji kusisoma ni kwa kutumia encryption.
Kwa mfano email mafunzo@bongoclass.com inaweza kuwa hivi c/tsSBSi703k1jy2SGDNSy5zHYZBiw== uzuri wa encryption unaweza kurudisha hizo encription kuwa katika hali ya kwaida. Kitendo hiki kinaitwa decryption. Katika somo hili tutatumia open ssl kufanya encryption na decryption.
Kufanya encryption:
Kanuni ya ku encrypt taarifa. Kwa ufupi tunafanya encryption kwa kutumia function inayoitwa openssl_encrypt() hata hivyo zipo nyingi. Tunatumia hii kwa kuwa ni free.
openssl_encrypt($data, $cipher,$key, $options, $encryption_iv)
Saa hapo wacha nikueleze kwanza kila kimoja kazi yake:
$data hii ndio hubeba hiyo taarifa ambayo ndio tunakwedna kui encrypt
$cipher hii ni nia ambayo hutumika ili kmu encrypt taarifa. Kwa kuwa tunatumia openssl hapa njia tutakayotumia ni AES-128-CTR
$key Hii ni sawa na kusema neno la siri ambalo litatumika wakati wa kuzifichuwa taarifa yaani ku decrypt. Hii key ni hatari sana kwa kuwa mtu akiipata anaweza kufichuwa taarifa ulizoficha.hivyo inatakiwa ufiche na uweke strong kama vile ni password yako.
$option hapa kunakaa namba kulingana na method itakayotumiaka tutaacha 0 kwa kuwa tunatumia openssl.
$iv hii ndio encryption method. Hapa tutatumia funvtion inayoitwa openssl_cipher_iv_length()ambapo ndi yake tutaweka cipher kama parameta yake.
$encryption_iv hii ndio ambayo huanza kubeba hizo taarifa na kuzichakata kulingana na cipher iliyotumiaka.
Encryption:
<?php
$data = "mafunzo@bongoclass.com";
$cipher = "AES-128-CTR";
$iv = openssl_cipher_iv_length($cipher);
$options = 0;
$encryption_iv = '1234567891011121';
$key = "Bong_cc293";
$encryption = openssl_encrypt($data, $cipher,
$key, $options, $encryption_iv);
echo " $encryption";
Hii itakupa matokeo
c/tsSBSi703k1jy2SGDNSy5zHYZBiw==
2. Kufanya decryption:
Decryption ni kufichuwa taarifa. Yaani sasa tunakwenda kubadili hiyo c/tsSBSi703k1jy2SGDNSy5zHYZBiw== kuwa neno la asili. Kitu kama hiki hakiwezi kufanyika kwa kutumia hashing. Sasa kanuni ni kama tuliotumia hapo juu. Kuna utofauti mdogo tu
Kanuni ya kufanya decryption
openssl_decrypt ($data, $cipher,$key, $options, $decryption_iv);
Utaona hapo utofauti n i mdogo karbia parameta zote ni sawa. Tofauti ni kuwa kwenye encryption tumetumia openssl_encrypt() lakini hapa tunatumia opebssl_decrypt()
<?php
$options = 0;
$data = "c/tsSBSi703k1jy2SGDNSy5zHYZBiw==";
$cipher = "AES-128-CTR";
$decryption_iv = '1234567891011121';
$decryption_key = "Bong_cc293";
$decryption=openssl_decrypt ($data, $cipher,
$key, $options, $decryption_iv);
echo " $decryption";
?>
Hiyo itakupa matokeo
Endappo utabadilisha encryption key hutoweza kupata matokeo husika. Hivyo ni jambo la msingi kabisa kuhifadhi vyema encryption key yako. Katika somo hili tumetumia email lakini unaweza kutumia data nyingi zaidi ya email.
MWISHO:
Tukutane somo lainalofuata tutajifunza kuhusu namna ya kutuma email. Utakapojuwa kutuma email itakuwa ni rahisi kutengeneza program ya kuweza ku renew password endapo mtu atasahau.
Je! umeipenda hii post?
Ndio Hapana Save post
Imeandikwa na Rajabu Terehe 2023-10-19 Download PDF Share on facebook WhatsApp