2013 yılında “Php ile Geri Döndürülebilir Şifreler Oluşturmak” başlıklı bir makale yayınlamıştım, bu aralar o makaleden dolayı dönüşler almaktayım. Sebebi ise o makaledeki yöntemde kullanılan Mcrypt kütüphanesinin Php’nin yeni sürümlerinde bulunmaması.
Hem alternatif olması hem de ek bir bağımlılık gerektirmemesi için aşağıdaki sınıfı geliştirdim.
Gönlünüzce kullanabilirsiniz:
Sınıf
<?php
/*
* A "Reversible" password encryption routine by Sinan Eldem
* www.sinaneldem.com.tr
* V. 2.9
* 18.07.2018 11:15
*/
class MyHash {
public function encode($string, $key) {
$result = '';
for ($i = 0; $i < strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key)) - 1, 1);
$char = chr(ord($char) + ord($keychar));
$result .= $char;
}
return base64_encode($result);
}
public function decode($string, $key) {
$result = '';
$string = base64_decode($string);
for ($i = 0; $i < strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key)) - 1, 1);
$char = chr(ord($char) - ord($keychar));
$result .= $char;
}
return $result;
}
}
$key = '123abc!#,678def';
$string = 'Merhaba Dünya!';
$encoded = (new MyHash)->encode($string, $key);
$decoded = (new MyHash)->decode($encoded, $key);
echo $encoded; // s5akm8LExEFn7/KlscWG
echo '
';
echo $decoded; // Merhaba Dünya!
Keyifli kodlamalar dilerim.