ASCII 码的加密与解密

 2018-12-23 02:57:01   {{zan}}   175 

 ASCII 码的加密与解密

算法描述:

        ASCII码是字符编码的其中一种,(UTF-8、GBK、GB2312、ISO-8859-1、Unicode …),它是 一种 “算法”。ASCII是用8位的二进制来代表大小写英文、数字、标点符号、控制符等。加密就是让能读懂的、有意义的字符串变成不能读懂、无意义的字符串。解密反之。

代码实现:

// 加密
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 '<br>';
$ASCII_decrypt = ASCII_decrypt($ASCII_encrypt);
echo $ASCII_decrypt;

运行结果:

478598328287329381783292849810
Fly in the sky!  

最后总结:

        需要注意的是,我写的这个加密解密算法里,只能输入英文等字符,不可以输入中文文字!

        ASCII码说白了就是数字0-9、大小写英文字母a-z,A-Z再加上英文标点符号这些都叫ASCII码。密码总长度在8-63位之间十六进制字符就很好理解了数字0-9、A\B\C\D\E\F这16个,长度在8-64位之间。

        在设置密码的时候,建议设置数字+大小写字母+标点符号这样的密码,好处就是强度高,不易被破解。


        欢迎指导!

千而の大狮子!        

        

提交 清空