百度URL参数之LINK?URL参数加密解密研究(代码实例)

加密过程:

function _empty($param)
{
if (empty($param) && !is_numeric($param)) {
    return true;
} else {
    return false;
}
}

function encryption($domain) {

    if (empty($domain)) return $domain;

    //$ascii码表x,y位置
    $ascii = [
        [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/'],
        ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?'],
        ['@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O'],
        ['P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_'],
        ['`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o'],
        ['p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', ' ']];

    $data  = [
        [13, 10],
        [10, 1],
        [16, 15],
        [7, 6],
        [5, 13],
        [18, 9],
        [13, 11],
        [7, 12],
        [10, 5],
        [15, 9],
        [15, 9],
        [13, 5],
        [16, 11],
        [0, 1],
        [8, 2],
        [8, 5],
        [0, 0],
        [17, 15],
        [14, 8],
        [2, 1],
        [10, 5],
        [17, 14],
        [16, 5],
        [3, 8],
        [14, 9],
        [5, 8],
        [15, 1],
        [3, 15],
        [13, 10],
        [10, 12],
        [5, 7],
        [0, 2],
        [18, 14],
        [0, 15],
        [1, 6],
        [13, 5],
        [2, 1],
        [15, 14],
        [18, 8],
        [18, 9],
        [1, 10],
        [14, 14],
        [13, 2],
        [5, 3],
        [5, 8],
        [0, 4],
        [1, 5],
        [16, 1],
        [8, 1],
        [2, 5],
        [10, 7],
        [10, 15],
        [14, 14],
        [17, 3],
        [15, 0],
        [14, 5],
        [7, 7],
        [3, 4],
        [14, 8],
        [12, 0],
        [13, 12],
        [12, 3],
        [6, 5],
        [3, 1],
        [1, 14],
        [5, 4],
        [ 0, 12],
        [7, 0],
        [10, 7],
        [15, 12],
        [8, 2],
        [18, 15],
        [3, 12],
        [1, 12],
        [0, 15],
        [17, 4],
        [17, 2],
        [11, 1],
        [3, 12],
        [11, 5],
        [0, 13],
        [1, 1],
        [2, 12]];
    //所有的y值

    $y = [
        '0123456789abcdef',
        '1032547698badcfe',
        '23016745ab89efcd',
        '32107654ba98fedc',
        '45670123cdef89ab',
        '54761032dcfe98ba',
        '67452301efcdab89',
        '76543210fedcba98',
        '89abcdef01234567',
        '98badcfe10325476',
        'ab89efcd23016745',
        'ba98fedc32107654',
        'cdef89ab45670123',
        'dcfe98ba54761032',
        'efcdab8967452301',
        'fedcba9876543210'];
    //所有的x值
    $x = [
        '016745',
        '107654',
        '234567',
        '321076',
        '325476',
        '452301',
        '543210',
        '670123',
        '765432',
        '761032',
        '89abcd',
        '89efcd',
        '98fedc',
        'abcdef',
        'badcfe',
        'cdab89',
        'dcba98',
        'ef89ab',
        'fe98ba'];

    //解密过程
    $len = strlen($domain);
    $mi = '';

    for($i=0; $i < $len; $i++) {
        $ch  = substr($domain,$i,1);
        $f_real_x = '';
        $f_real_y = '';
        foreach ($ascii as $real_x=>$real_y_chs) {
            foreach ($real_y_chs as $real_y=>$real_y_ch) {
                if ($real_y_ch == $ch) {
                    $f_real_x = $real_x;
                    $f_real_y = $real_y;
                    break;
                }
            }
        }
    
        if (!_empty($f_real_x) && !_empty($f_real_y)) {
            $this_data_x = $x[$data[$i][0]];
            $encode_x = $this_data_x[$f_real_x];
            $mi .=  $encode_x;
            $this_data_y = $y[$data[$i][1]];
            $encode_y = $this_data_y[$f_real_y];
            $mi .= $encode_y;
        }
    }

    return 'http://www.baidu.com/link?url=a3f48d30fc293c5e471ef23de092fddc99'.$mi;

}


echo encryption('www.php.net');

结果:PHP: Hypertext Preprocessorhttp://www.baidu.com/link?url=a3f48d30fc293c5e471ef23de092fddc99fdd688681db1fb62cb8c9d

解密过程: 获取跳转后的地址  请参考这个  我就不写了

PHP获取跳转后的真实地址_刘星麟的博客-CSDN博客_php获取跳转后的地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值