pip的安裝與binascii.crc32報錯
問題起源
今天再看hbctf第一場的題解,發現一道編寫python腳本爆破crc32的題目。於是嘗試了一下,但是程序報錯
import binascii
real = 0x9c4d9a5d
for y in range(100000, 999999):
if real == (binascii.crc32(str(y)) & 0xffffffff):
print(y)
誤以為是binascii模塊沒有安裝,智障地去安裝了pip,最后又重新找了問題的解決方法
pip的安裝 for windows
首先要配置要python的系統變量的PATH值。然后去pip下載下載pip,解壓(tar -xf **),然后打開cmd,這里的cmd要用管理員方式打開,否則安裝的時候會報錯,提示權限不夠。
ps:important在這里的時候最好把x:/program(x86)/pyhon這個文件夾讓當前賬號獲取全部權限,否則pip安裝模組的時候還會報錯。右鍵文件屬性,安全,找當前賬號,編輯,完全控制。
然后在cmd中進入解壓之后的pip文件夾,在cmd輸入python setup.py install ,然后pip就安裝成功了
crc32報錯的真正原因
在新版本的python3中,取消了unicode類型,代替它的是使用unicode字符的字符串類型(str),字符串類型(str)成為基礎類型如下所示,而編碼后的變為了字節類型(bytes)但是兩個函數的使用方法不變:
decode encode
bytes ------> str(unicode)------>bytesu = '中文' #指定字符串類型對象u
str = u.encode('gb2312') #以gb2312編碼對u進行編碼,獲得bytes類型對象str
u1 = str.decode('gb2312')#以gb2312編碼對字符串str進行解碼,獲得字符串類型對象u1
u2 = str.decode('utf-8')#如果以utf-8的編碼對str進行解碼得到的結果,將無法還原原來的字符串內容
原文來源
所以加一個encode()
就可以了