原创一个方便测试可连续转换重制的编码转换器,可灵活拓展解码规则
引子
有的情况下遇到传输工程中的,经常会遇到一些经过编码后的串,我们可以根据自己的经验和调试测试对其进行判断。
他们可能是经过多次编码转换来的,所以每次调试的时候略显麻烦,本着一次开发,长久受益的想法,就着手开发了一个【可拓展式解码器】
需求
- 解码失败自动回跳到解码之前状态
- 可连续解码 (比如将 base64 转码后的结果,再进行字节流解压)
- 可跟踪流式解码(可以查看已进行了哪些解码步骤)
- 可拓展式,需要自定义解码,在代码尾部添加一个 def 方法即可
效果
使用流程
- 代码中已默认添加了 bases64 解密、 zlib 解压等简单方法。
如果要自定义,请在代码下方 Decode 类中添加自己解码的方法格式如下。
1
2
3def decode_自定义名(self):
"""对self._key 进行解密操作"""
self._key = '将解码结果赋值给self._key即可'Run运行程序,输入需要解码的字符串
选择对应方式进行转码
显示解析
添加自定义解密方法
注意:方法命名必须以 decode_
开头, 对self._key
进行解密操作完之后必须重新赋值给 self._key
1 | def decode_自定义名(self): |
代码实现思路
自动获取自定义解码
采用 MetaClass 方法,自动获取
decode_
函数开头的方法并解析加入attrs['__Decode__']
中
1 | class TranslationMetaClass(type): |
待用自定义解码函数
既然我们以 MetaClass 的方式在我们启动程序的时候,获取到了所有 自定义的解密方法,那我们肯定要调用与展示。
1 | eval("self.{}()".format(self.__Decode__[choice])) # 字符串转函数运行 |