前段时间,有个同学去复试的时候,公司给出一道题.
同学便把题发到群里让大家看看能不能解

TIM图片20190403151426.png

下面2个函数,是我稍稍改了下

<?php
function encrypt($data,$key) {
    $len    = strlen($data);
    $x      = 0;
    $key    = md5($key);
    $l      = strlen($key);
    $char   = '';
    for ($i = 0; $i <$len; $i++) {
        if ($x == $l) $x = 0;
        $char .= chr(ord($data[$i]) + ord($key[$x]));
        $x++;
    }
    return base64_encode($char);
}

function decrypt($data,$key) {
    $data   = base64_decode($data);
    $len    = strlen($data);
    $x      = 0;
    $key    = md5($key);
    $l      = strlen($key);
    $char   = '';
    for ($i = 0; $i <$len; $i++) {
        if ($x == $l) $x = 0;
        $char .= chr(ord($data[$i]) - ord($key[$x]));
        $x++;
    }
    return $char;
}