v2.5.2
Giriş yap

OpenSSL dizi verilerinin şifresini çözme..

hakankorkz
639 defa görüntülendi

OpenSSL dizi verilerinin şifresini çözme..

Merhaba arkadaşlar tayfun hocamızın göstermiş olduğu OpenSSL veri şifreleme metodu array verilerde işlemiyor son veri şifreleniyor fakat şifre çözüldüğünde son array'ın şifresi çözülüyor örnek yapım aşağıda...

<?php


function lockey($data)
{

    $datatype = gettype($data);

    if ($datatype == 'array') { // Array veri şifreleme..

        $datacount = count($data);

        for ($say = 0; $say < $datacount; $say++) {

            $veri=$data[$say];

            $cipher = 'AES-128-ECB';

            $key='123';

            $encoded = openssl_encrypt($veri, $cipher, $key);

        }

    } else { // String ve diğer türde şifreleme..

        $cipher = 'AES-128-ECB';

        $key='123';

        $encoded = openssl_encrypt($data, $cipher, $key);


    }

    return $encoded;

}

function openkey($encoded)
{

  $key='123';

    $data = str_replace(' ','+',$encoded);


    $cipher = 'AES-128-ECB';

    $decoded = openssl_decrypt($data, $cipher, $key);

    return $decoded;

}


$veri = ['test', 'test2'];

echo $veridata=lockey($veri); // çıktısı: wLUkfrnPNkafzMPRIdcMdQ==


echo '<br>';

echo openkey($veridata); // çıktısı: test2

fakat gördüğünüz gibi veri değişkeni array türünde veri gönderiyor dögü işlemi de gerçekleşiyor fakat çıktımız son verinin şifresini çözüyor...

umarım soruyu düzgün anlata bilmişimdir...

firatogr
1271 gün önce

for her döndüğünde şifrelenmiş değeri $encoded'a eşitliyorsun. Yani $encoded ilk önce dizinin ilk elemanını depoluyor sonra for bir daha döndüğünde sırayla son elemana kadar gidiyor. Burda yapman gereken for'un üstünde $encoded = []; yazman ve sonrasında eşitlerken de $encoded[] = openssl_encrypt($veri, $cipher, $key); yazman olacaktır.