先上第一次的代碼:
import base64
# 字典文件路徑
dic_file_path = 'C:/Users/muzi/Downloads/271_b790fbaa9f8480532fff81553e908114d783bc30/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)
以上是我做題時第一次的base64編碼:但在編譯的時候遇到了錯誤
後來我搜索了一下,問題出在了Python3對base的編碼問題中:
python3.x與Python2不一樣,字符都爲unicode編碼,而b64encode函數的參數爲byte類型,所以必須先轉碼。
修改後:
import base64
# 字典文件路徑
dic_file_path = 'C:/Users/muzi/Downloads/271_b790fbaa9f8480532fff81553e908114d783bc30/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()).encode('utf-8'))
print(encodestr)
結果爲:
b’ '代表byte的意思。我們只要再將byte轉換回去就可以。
print(str(encodestr,'utf-8'))