pip的安裝以及binascii報錯問題


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)------>bytes

u = '中文' #指定字符串類型對象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()就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM