رمزگذاری / رمزگشایی (encrypt/decrypt) سفارشی در php
رمزگذاری رمزگشایی سفارشی php – در این آموزش قصد داریم نحوه ساخت یک الگوریتم اختصاصی ساده که برای هر شخص می تواند متفاوت باشد را بسازیم .
شرح کارایی الگوریتم :
- هر کاراکتر را به کد ascii تبدیل می کنیم ( نتیجه عدد صحیح ) حاصل می شود . ( البته عدد به دست آمده را با 255 جمع می کنیم که سفارشی و منحصر به فرد شود البته می توان با عدد به دست آمد کلی عملیات ریاضی دیگر انجام داد تا رمزگذاری پیچیده تری شود . )
- سپس عدد های به دست آمده را با , در کنار یکدیگر قرار می دهیم .
- پس از آن به base64 تبدیل می کنیم .
- برای رمزگشایی کافی است همه این کار ها را برعکس انجام دهیم تا به نسخه اولیه برگردیم .
اسکرپیت رمزگذاری رمزگشایی 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 ?>
ارسال نظر