前几天呢,在日常的测试工作中,遇见一件比较不好搞的事儿;就是针对其中的某一个模块的测试,数据库中数据是经过 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 编码和解码的脚本工具,当然后面小编可能会对其进行改编和完善,如果大家有什么建议的、或者有什么好建议的,都欢迎留言,欢迎联系!
小编更希望能和各位大哥携手,写出更好的工具!
感谢大家,感谢各位大哥抽出时间阅读,谢谢~~~