python随机转换url中的域名的部分字符到16进制

用于让人单看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))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值