可逆加密算法(一):ASCII 码加密,恺撒加密,Base64加密 您所在的位置:网站首页 hash加密可逆吗 可逆加密算法(一):ASCII 码加密,恺撒加密,Base64加密

可逆加密算法(一):ASCII 码加密,恺撒加密,Base64加密

2023-07-27 15:54| 来源: 网络整理| 查看: 265

ASCII 码加密,恺撒加密,Base64

这三种加密方式都是可逆的。

1 ASCII 码加密和解密

ASCII 码加密就是把字符串的变换成ASCII 码的数字传送。(只能输入英文等字符,不可以输入中文文字!)

加密:

function ASCII_encrypt($str) { $arr = str_split($str); $str_code = ''; foreach ($arr as $k => $v) { if (ord($v) == 32) { $str_code .= ord($v); } else { $str_code .= ord($v) - 23; } } return $str_code; }

解密:

function ASCII_decrypt($str) { $arr = str_split($str, 2); $str_code = ''; foreach ($arr as $kk => $vv) { if ($vv == 32) { $str_code .= chr($vv); } else { $str_code .= chr($vv + 23); } } return $str_code; }

运行后得到的结果:

$str = 'Fly in the sky!'; $ASCII_encrypt = ASCII_encrypt($str); echo $ASCII_encrypt; echo ''; $ASCII_decrypt = ASCII_decrypt($ASCII_encrypt); echo $ASCII_decrypt;

478598328287329381783292849810 Fly in the sky!

2 恺撒加密和解密

“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。

/** * @param $str -要加密的字符串 * @param $code -偏移位数 * @param int $type -0(默认)加密,1解密 * @return string */ function caesar($str, $code, $type = 0) { if ($type == 1) { $code = -$code; } $arr = str_split($str); $str_caesar = ''; foreach ($arr as $k => $v) { if (preg_match("/^[a-z]/i", $v)) { $str_code = ord($v) + $code; if (strtoupper($v) === $v) { if ($str_code > ord('Z')) { $str_code -= 26; } if ($str_code < ord('A')) { $str_code += 26; } } if (strtolower($v) === $v) { if ($str_code > ord('z')) { $str_code -= 26; } if ($str_code < ord('a')) { $str_code += 26; } } $str_caesar .= chr($str_code); } else { $str_caesar .= $v; } } return $str_caesar; }

运行后得到的结果:

$str = 'Fly in the sky!'; $caesar_encrypt = caesar($str,4); echo $caesar_encrypt; echo ''; $caesar_decrypt = caesar($caesar_encrypt,4,1); echo $caesar_decrypt;

Jpc mr xli woc! Fly in the sky!

 3 Base64加密和解密

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。此时,采用Base64编码具有不可读性,需要解码后才能阅读。

PHP自带有base64加密和解密的函数:如下

$str = 'Fly in the sky!'; $bas = base64_encode($str); echo $bas; echo ''; echo base64_decode($bas);

运行结果:

Rmx5IGluIHRoZSBza3kh Fly in the sky!

 以上是我对可逆加密算法的初步认识与理解,后面会继续更新更多的可逆加密算法。

欢迎补充! 千而の大狮子!

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有