用于让人单看url无法识别url到底是哪个网站
比如
https://www.baidu.com/s?ie=UTF-8&wd=test
转换后就是
https://%77WW.b%61%69%44u.com/s?ie=UTF-8&wd=test
https://%77%57%57.%42A%49%44%75.com/s?ie=UTF-8&wd=test
https://%57%77%77.B%41%49%64%55.com/s?ie=UTF-8&wd=test
每次转换后的结果都是不一样的,上面的3个网址通过浏览器访问都是一样的
具体代码如下:
import random
def url_split(url):
if not 'http' in url:
url = 'http://' + url
if not '/' in url[8:-1]:
url = url + '/'
split = url.split('//')
url0 = split[0]
url = split[1]
split = url.split('/')
url3 = '/'.join(split[1:])
url = split[0]
split = url.split('.')
url2 = split[-1]
url = split[0:-1]
url1 = '.'.join(url)
url = [url0, url1, url2, url3]
return url
def str_to_hex(s):
s = upper_to_lower(s)
import random
ran = random.randint(0, 2)
if ran == 0:
return s
s = ord(s)
s = hex(s)
return '%' + s[2:]
def upper_to_lower(str):
if str.isalpha() == False:
return str
import random
ran = random.randint(0, 1)
if ran == 1:
str = str.upper()
return str
else:
str = str.lower()
return str
def main(url):
url_list = url_split(url)
url = url_list[1]
url = url.split('.')
url_new = []
for i in url:
str = ''
for j in i:
j = str_to_hex(j)
str = str + j
url_new.append(str)
url_list[1] = '.'.join(url_new)
url = url_list[0] + '//' + url_list[1] + '.' + url_list[2] + '/' + url_list[3]
return url
if __name__ == '__main__':
url = 'https://www.baidu.com/s?ie=UTF-8&wd=test'
print(main(url))