python3实现url全编码/解码

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

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

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

print("hello world")
print("hello world")
print("hello world")
print("hello world")
print("hello world")
print("hello world")
print("hello world")
print("hello world")
print("hello world")
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+"\n")
        if type == "2" :
            decode_string = decode(string)
            print("解码结果为:"+decode_string+"【请注意前后空格】\n")
        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()

  

posted @   网络安全武器库  阅读(1071)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示