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

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

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

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.

Sinan Eldem

Fullstack Web Developer

Laravel Framework ile PHP ve MySQL üzerine özel ders, danışmanlık ve web programcılığı hizmetleri veriyorum.

Danışmak istedikleriniz ile ilgili benimle irtibat kurabilirsiniz.

Benzer Yazılar

Open–Closed Principle (Açık/Kapalı İlkesi)

Bir uygulamanın ömrü boyunca, sürekli olarak sıfırdan yeni özellikler eklemekten ziyade mevcut kod temeline ekleme yapmak için daha çok zaman harcanır.

Laravel Nasıl Savunulur

Son zamanlarda Laravel’i keşfettiniz ve onu sevdiniz ve yeni geliştirmenizde onu kullanmak istiyorsunuz.

Solid İlkeleri (Solid Principles)

Merhaba arkadaşlar,

Daha sonra her biri için ayrı ayrı sayfalar oluşturarak detaylandıracağım Solid Prensiplerine değinmek istiyorum.

Yorumlar