Php ile Geri Döndürülebilir Şifreler Oluşturmak

php

3 hafta önce php etiketinde yazıldı.

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 '<br>';
echo $decoded; // Merhaba Dünya!

Keyifli kodlamalar dilerim.