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()
看着就真的看着,不学就真的5
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构