رمزگذاری / رمزگشایی (encrypt/decrypt) سفارشی در php

رمزگذاری / رمزگشایی (encrypt/decrypt) سفارشی در php

رمزگذاری رمزگشایی سفارشی php – در این آموزش قصد داریم نحوه ساخت یک الگوریتم اختصاصی ساده که برای هر شخص می تواند متفاوت باشد را بسازیم .

شرح کارایی الگوریتم :

  1. هر کاراکتر را به کد ascii تبدیل می کنیم ( نتیجه عدد صحیح ) حاصل می شود . ( البته عدد به دست آمده را با 255 جمع می کنیم که سفارشی و منحصر به فرد شود البته می توان با عدد به دست آمد کلی عملیات ریاضی دیگر انجام داد تا رمزگذاری پیچیده تری شود . )
  2. سپس عدد های به دست آمده را با , در کنار یکدیگر قرار می دهیم .
  3. پس از آن به base64 تبدیل می کنیم .
  4. برای رمزگشایی کافی است همه این کار ها را برعکس انجام دهیم تا به نسخه اولیه برگردیم .


اسکرپیت رمزگذاری رمزگشایی php

<?php 

$str = "rapidcode_algorithm";

function hash_str($str, $func = null)
{
    $chr_list = str_split($str);
    $int_chr_list = [];

    foreach ($chr_list as $element) {

        $int_chr = ord($element);
        $int_chr_list[] = $func ? $func($int_chr) : $int_chr;
    }

    $int_chr_list_base64 = base64_encode(join("," , $int_chr_list));

    return $int_chr_list_base64;
}

function un_hash_str($int_chr_list_base64, $func = null)
{

    $list_chr_list = explode("," , base64_decode($int_chr_list_base64));

    $str = "";
    foreach ($list_chr_list as $chr_int) {
        $chr_int = $func ? $func($chr_int) : $chr_int;
        $str .= chr($chr_int);
    }

    return $str;
}

$hashed_str = hash_str($str, function ($chr_int) {
    return $chr_int + 255;
});

echo($hashed_str) . "\n";
// MzY5LDM1MiwzNjcsMzYwLDM1NSwzNTQsMzY2LDM1NSwzNTYsMzUwLDM1MiwzNjMsMzU4LDM2NiwzNjksMzYwLDM3MSwzNjQ=

$un_hashed_str = un_hash_str($hashed_str,function($chr_int){
    return is_numeric($chr_int) ? $chr_int - 255 : 0;
});

echo($un_hashed_str);
// rapidcode_algorithm

?>

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us