【转】百度搜索结果url加密算法 python源码

百度搜索结果都是加密过的,比如:

baidu.com/link?url=a3f48d30fc293c5e471ef23de092fddc99e8cd902143baf828cbc787e08f0e3f3c49a8f7

以下就是用python实现加密的方法,此方法的缺点是无法加密https的链接,算是比较老的算法,但是仍然可以用(常被seo人士用于shua排名等领域)。

import os
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 = [
 '0123456789abcdef',
 '1032547698badcfe',
 '23016745ab89efcd',
 '32107654ba98fedc',
 '45670123cdef89ab',
 '54761032dcfe98ba',
 '67452301efcdab89',
 '76543210fedcba98',
 '89abcdef01234567',
 '98badcfe10325476',
 'ab89efcd23016745',
 'ba98fedc32107654',
 'cdef89ab45670123',
 'dcfe98ba54761032',
 'efcdab8967452301',
 'fedcba9876543210']
x = [
 '016745',
 '107654',
 '234567',
 '321076',
 '325476',
 '452301',
 '543210',
 '670123',
 '765432',
 '761032',
 '89abcd',
 '89efcd',
 '98fedc',
 'abcdef',
 'badcfe',
 'cdab89',
 'dcba98',
 'ef89ab',
 'fe98ba']
 
def encode_url(url):
    print(url)
    url_re = ''
    mi = ''
    for i, ch in enumerate(url):
 
        f_real_x = None
        f_real_y = None
        for real_x, real_y_chs in enumerate(ascii):
            for real_y, real_y_ch in enumerate(real_y_chs):
                if real_y_ch == ch:
                    f_real_x = real_x
                    f_real_y = real_y
 
        if f_real_y is not None and f_real_x is not None:
            this_data_x = x[data[i][0]]
            encode_x = this_data_x[f_real_x]
            mi = mi + encode_x
            this_data_y = y[data[i][1]]
            encode_y = this_data_y[f_real_y]
            mi = mi + encode_y
 
    return 'http://www.baidu.com/link?url=a3f48d30fc293c5e471ef23de092fddc99' + mi
 
 
if __name__ == '__main__':
    t = encode_url("69tianqi.com");
    print(t)

 

python执行结果

blog.csdn.net/miigo
http://www.baidu.com/link?url=a3f48d30fc293c5e471ef23de092fddc99e8cd902143baf828cbc787e08f0e3f3c49a8f7

 

访问网址即可正常跳转。

另外,如何获取加密之后的真实地址就简单多了,直接http访问加密后的地址,获取返回头部里的301跳转地址就行了。

<?php
$url = "http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu";

$info = parse_url($url);
$fp = fsockopen($info['host'], 80,$errno, $errstr, 30);
fputs($fp,"GET {$info['path']}?{$info['query']} HTTP/1.1\r\n");
fputs($fp, "Host: {$info['host']}\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$rewrite = '';
while(!feof($fp)) {
    $line = fgets($fp);
    if($line != "\r\n" ) {
        if(strpos($line,'Location:') !== false) {
            $rewrite = str_replace(array("\r","\n","Location: "),'',$line);
        }
    }else {
        break;
    }
}
var_dump($rewrite); //结果显示:string(22) "http://www.google.com/" 
?>

 

from: https://blog.csdn.net/miigo/article/details/108578094

posted on 2021-05-07 11:24  神奇的旋风  阅读(1183)  评论(0编辑  收藏  举报

导航