Chinese darker 2019-10-15 09:11 采纳率: 50%
浏览 257
已采纳

能不能详细讲解一下这个PHP加密算法每行代码的意思?

图片说明

<?php
function encrypt($data, $key) {
    $key = md5($key);
    $x = 0;
    $len = strlen($data);
    $l = strlen($key);
    $char = '';
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) {
            $x = 0;
        }
        $char.= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++) {
        $str.= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}
//  解密算法
function decrypt($data, $key) {
    $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    $char = '';
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) {
            $x = 0;
        }
        $char.= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++) {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
            $str.= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        } else {
            $str.= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}
//  加密解密均需要用同一个加密密钥
$data = 'PHP含秘钥的加密解密算法'; // 被加密信息
$key = 'www.mafutian.net'; // 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo '明文:' . $data;
echo '<br />';
echo '密文:' . $encrypt;
echo '<br />';
echo '明文:' . $decrypt;
?>


  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 港诡实录的背包系统拆解
      • ¥15 完成赛博选角的需求,随机选取所扮演的文明
      • ¥15 宽带IP网络路由器的初始路由表和最终路由表
      • ¥15 c语言基础这几个该怎么搞
      • ¥15 ip 地址转换(字符串与指针)
      • ¥15 有没有同在北京有业余时间教编程的程序员?
      • ¥15 桌面路径修改到D盘,忘记创建文件夹
      • ¥15 在网站管理的后台误操作
      • ¥16 Hdfs集群启动不成功,显示连接时间过长,而且jps中也没显示
      • ¥80 C++代码,期末考试用