zoukankan      html  css  js  c++  java
  • python3实现url全编码/解码

    最近在学习SQL注入,绕过方法中有编码注入绕过,需要将关键词进行全编码,百度了一下没有找到全编码工具,所有的编码工具里"and"编码完还是"and",于是查了一下全编码的原理:

    其实就是%加上字符的ASCII码十六进制表示方式(先转ASCII编码再转16进制)
    例如字母a的ASCII码十六进制表示方式是61,那么a编码过来就是%61

    比较简单,但实际需要用的时候,逐个字符去查ASCII码表不太方便,所以自己动手写了一个python脚本自动全编码解码,有需要的童鞋可以拿去用

    import os # 导入 os模块
    
    def main():
        clearFlag = "y"
        while(1):
            if clearFlag == "y" or clearFlag == "Y":
                os.system("cls") # 执行cls命令清屏命令行
            clearFlag = ""
            string = input("请输入需要转换的字符串 :")
            type = input("请选择操作类型(1:加密 2:解密) :")
            while(type != "1" and type != "2"):
                type = input("操作类型输入错误,请重新选择(1:加密 2:解密) :")
            if type == "1" :
                encode_string = encode(string) # encode_string=编码
                print("编码结果为:"+encode_string+"
    ")
            if type == "2" :
                decode_string = decode(string)
                print("解码结果为:"+decode_string+"【请注意前后空格】
    ")
            clearFlag = input("按Y/y清空屏幕继续:")
    
    #编码
    def encode(string):
        encode_string = ""
        for char in string:
            encode_char = hex(ord(char)).replace("0x","%") #先转ASCII编码再转16进制,把0x替换为%
            # 例如 i+=1 == i=i+1;所以 encode_string = encode_string + encode_char 
            encode_string += encode_char # encode_string += 空字符+结果
        return encode_string
    
    #解码
    def decode(string):
        decode_string = ""
        # 以%为分隔符
        # %61%6e%64
        # ['%61','%6e','%64']
        #string_arr.pop(0)删除第一个元素
        # ['61','6e','64']
        string_arr = string.split("%") # 以%为分隔符
        string_arr.pop(0)           #删除第一个元素
        for char in string_arr:
            decode_char = chr(eval("0x"+char)) # chr(eval("0x"+ 61.....)),先输出0x61再通过chr转换为ASCII编码
            decode_string += decode_char
        return decode_string
    
    main()
    看着就真的看着,不学就真的5
  • 相关阅读:
    1051 高度检查器
    Word+Excel 问题及解决
    Python——面向对象、绑定对象、组合
    Python——异常处理
    Python——包
    Python——模块
    Python——序列化模块
    Python——collections模块、time模块、random模块、os模块、sys模块
    Python——re模块
    Python——递归、二分查找算法
  • 原文地址:https://www.cnblogs.com/k0xx/p/15115103.html
Copyright © 2011-2022 走看看