Python 聊一聊关于使用 python 实现 base64 编码和解码的事儿

刘永高 · 2024年09月16日 · 981 次阅读

前几天呢,在日常的测试工作中,遇见一件比较不好搞的事儿;就是针对其中的某一个模块的测试,数据库中数据是经过 base64 编码过的数据,但是页面上展示的是解码过的数据,所以要核对数据的话就要在获取到数据之后,进行解码或者编码然后才能进行比较。

而让人不好整的就是当时缺少转化的工具,而当你问开发帮忙找一个时候,开发因为比较忙哈,就没有来得及帮忙。

所以,思考之后,小编就想着自己搞一个脚本试试?毕竟当时自己有在用 python,所以就简单的编写了一个脚本用于实现 base64 的编码和解码工作;当然,考虑到自己是在内网中进行的操作,所以我用的是 python 自带的编码库来实现的方式。

当然如果大家有更好的攻工具还请分享一二,都是测试人,大家要互相帮助哇~~😉 😉 😉 😉

下面是我自己编写的脚本,不足之处还请大家不吝赐教,本人在这里不胜感激,感谢各位大哥!!

作为工具实践者,我们关注最多的是程序的功能,对于一些细节处理的方面,可能略有不足,请谅解!


import base64


class exchangeBase64():
    """面向对象实现base64的编码和解码"""

    def getDatas(self):
        """获取输入的数据"""
        print("**************************>>获取数据<<*****************************")
        print("[注意:输入需要转化的数据,如果是多个请用英文逗号隔开,否则会被当成一个数据处理!!]")
        datas = input("[请输入您要转化的数据(如果需要转化多个,请用>>英文<<都号隔开)]:")
        self.datas = datas.split(',')
        print(f"[输入需要转化的元数据是]-->> {self.datas}")
        # return self.datas

    def toBase64(self):
        """实现将数据进行base64编码"""
        self.to_b64_datas = []
        for data in self.datas:
            b64_data = base64.b64encode(data.encode('utf-8'))
            # print(b64_data,type(b64_data),b64_data.decode(),type(b64_data.decode()))
            self.to_b64_datas.append(b64_data.decode('utf-8'))
        print(f"[转化为base64编码的数据是]-->> {self.to_b64_datas}")

    def fromBase64(self):
        """实现将数据从base64编码中进行解码"""
        self.from_b64_datas = []
        for data in self.datas:
            from_b64 = base64.b64decode(data)
            from_b64 = from_b64.decode('utf-8')
            self.from_b64_datas.append(from_b64)
        print(f"[从base64数据中解码后的数据是]-->> {self.from_b64_datas}")

    def runGetBase64(self):
        """运行后获取base64最终编码的函数"""
        self.getDatas()
        self.toBase64()

    def runFromBase64(self):
        """"获取从base64解码的数据"""
        self.getDatas()
        self.fromBase64()

    def run(self):
        """执行主函数"""
        print("**************************欢迎使用base64编码、解码工具*********************")
        while 1:
            no = int(input("[请输入数字,选择操作?输入1表示base64编码,输入2表示base64解码]->>:"))
            if no == 1:
                self.runGetBase64()
                break
            elif no == 2:
                self.runFromBase64()
                break
            else:
                print("[输入有误,请按照提示重新输入!]")


if __name__ == '__main__':
    b64Obj = exchangeBase64()
    # b64Obj.runGetBase64()
    b64Obj.run()

以上呢,就是小编自己编写的一个实现 base64 编码和解码的脚本工具,当然后面小编可能会对其进行改编和完善,如果大家有什么建议的、或者有什么好建议的,都欢迎留言,欢迎联系!

小编更希望能和各位大哥携手,写出更好的工具!

感谢大家,感谢各位大哥抽出时间阅读,谢谢~~~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册