python—base64

Posted anweilx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python—base64相关的知识,希望对你有一定的参考价值。

今天在写题时,执行脚本又报错了

脚本如下

#! /usr/bin/env python3
# _*_  coding:utf-8 _*_
import base64

# 字典文件路径
dic_file_path = \'./10_million_password_list_top_100.txt\'
with open(dic_file_path, \'r\') as f:
    password_dic = f.readlines()

username = \'admin:\' # 用户名
for password in password_dic:
    encodestr = base64.b64encode("admin:" + password.strip())
    print(encodestr)

 

报错如下

Traceback (most recent call last):
  File "D:/python file/ctf/ctfhub http 基础认证密码/密码payload生成.py", line 12, in <module>
    encodestr = base64.b64encode("admin:" + password.strip())
  File "D:\\obj\\windows-release\\37amd64_Release\\msi_python\\zip_amd64\\base64.py", line 58, in b64encode
    encoded = binascii.b2a_base64(s, newline=False)
TypeError: a bytes-like object is required, not \'str\'

上面最后一句话的意思是“类型错误:需要类似字节的对象,而不是字符串”。

于是更改为如下脚本

#! /usr/bin/env python3
# _*_  coding:utf-8 _*_
import base64

# 字典文件路径
dic_file_path = \'./10_million_password_list_top_100.txt\'
with open(dic_file_path, \'r\') as f:
    password_dic = f.readlines()

username = \'admin:\' # 用户名
for password in password_dic:
    str1=str.encode(username + password.strip())
    encodestr = base64.b64encode(str1)
    encodestr=str(encodestr)
    encodestr=encodestr.strip(\'b\\\'\')
    encodestr=encodestr.replace("=","\\=")   #避免“=”被转译
    print(encodestr)

成功运行

 

以上是关于python—base64的主要内容,如果未能解决你的问题,请参考以下文章

C#解码base64编码的二进制数据的代码

使用OpenSSL进行Base64编码和解码

阅读python的base64.py源代码

python实现base64算法加密

python小白 想问以下代码是如何实现base64解码的

无法在 Python 中使用 base64 编码数据