『壹』 python3parser在什麼包

pdb 調試復
traceback 調試
pprint 漂亮的輸出
logging 日誌
threading和制multiprocessing 多線程
urllib/urllib2/httplib http庫,httplib底層一點,推薦第三方的庫requests
os/sys 系統,環境相關
Queue 隊列
pickle/cPickle 序列化工具
hashlib md5, sha等hash演算法
cvs

『貳』 Python hashlib庫的問題

用到hashlib模塊,那你使用的應該是Python3.X。你這個問題僅牽扯到文件的讀寫操作和MD5加密函數的調用。你把MD5加密過程封裝成函數,參數就是要加密的字元串,返回加密後的結果。對要加密的字元串進行逐個讀取,傳遞給加密函數處理,然後把返回結果寫到result文檔中。

『叄』 python的哈希值如何用java編寫

MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(outputFile);
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
}
byte[] mdbytes = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
String output_md5 = sb.toString();

『肆』 Python 2.7的標准庫hashlib中包含的hash演算法包括哪些。

hashlib你.然後TAB其中演算法就出現了,最常用的是md5()

『伍』 如何使用Python 3的兩個庫來加解密字元串

哈希
如果需要用到安全哈希演算法或是消息摘要演算法,那麼你可以使用標准庫中的 hashlib 模塊。這個模塊包含了符合 FIPS(美國聯邦信息處理標准)的安全哈希演算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 演算法。Python 也支持 adler32 以及 crc32 哈希函數,不過它們在 zlib 模塊中。
哈希的一個最常見的用法是,存儲密碼的哈希值而非密碼本身。當然了,使用的哈希函數需要穩健一點,否則容易被破解。另一個常見的用法是,計算一個文件的哈希值,然後將這個文件和它的哈希值分別發送。接收到文件的人可以計算文件的哈希值,檢驗是否與接受到的哈希值相符。如果兩者相符,就說明文件在傳送的過程中未經篡改。
讓我們試著創建一個 md5 哈希:
>>> import hashlib >>> md5 = hashlib.md5() >>> md5.update('Python rocks!') Traceback (most recent call last): File "<pyshell#5>", line 1, in <mole> md5.update('Python rocks!') TypeError: Unicode-objects must be encoded before hashing >>> md5.update(b'Python rocks!') >>> md5.digest() b'\x14\x82\xec\x1b#d\xf6N}\x16*+[\x16\xf4w'

讓我們花點時間一行一行來講解。首先,我們導入 hashlib ,然後創建一個 md5 哈希對象的實例。接著,我們向這個實例中添加一個字元串後,卻得到了報錯信息。原來,計算 md5 哈希時,需要使用位元組形式的字元串而非普通字元串。正確添加字元串後,我們調用它的 digest 函數來得到哈希值。如果你想要十六進制的哈希值,也可以用以下方法:
>>> md5.hexdigest() ''

實際上,有一種精簡的方法來創建哈希,下面我們看一下用這種方法創建一個 sha1 哈希:
>>> sha = hashlib.sha1(b'Hello Python').hexdigest() >>> sha ''

可以看到,我們可以同時創建一個哈希實例並且調用其 digest 函數。然後,我們列印出這個哈希值看一下。這里我使用 sha1 哈希函數作為例子,但它不是特別安全,讀者可以隨意嘗試其他的哈希函數。
密鑰導出
Python 的標准庫對密鑰導出支持較弱。實際上,hashlib 函數庫提供的唯一方法就是 pbkdf2_hmac 函數。它是 PKCS#5 的基於口令的第二個密鑰導出函數,並使用 HMAC 作為偽隨機函數。因為它支持「加鹽(salt)」和迭代操作,你可以使用類似的方法來哈希你的密碼。例如,如果你打算使用 SHA-256 加密方法,你將需要至少 16 個位元組的「鹽」,以及最少 100000 次的迭代操作。
簡單來說,「鹽」就是隨機的數據,被用來加入到哈希的過程中,以加大破解的難度。這基本可以保護你的密碼免受字典和彩虹表(rainbow table)的攻擊。
讓我們看一個簡單的例子:
>>> import binascii >>> dk = hashlib.pbkdf2_hmac(hash_name='sha256', password=b'bad_password34', salt=b'bad_salt', iterations=100000) >>> binascii.hexlify(dk) b''

這里,我們用 SHA256 對一個密碼進行哈希,使用了一個糟糕的鹽,但經過了 100000 次迭代操作。當然,SHA 實際上並不被推薦用來創建密碼的密鑰。你應該使用類似 scrypt 的演算法來替代。另一個不錯的選擇是使用一個叫 bcrypt 的第三方庫,它是被專門設計出來哈希密碼的。

『陸』 python hashlib md5怎麼獲取秘鑰

hashlib里因為會有類似Crypto的數字計算,如果純用python做的話,速度很慢,達不到要求,

『柒』 為什麼在python3.7上help(hashlib)就報錯,誰知道為什麼

一般有兩點:
1,hashlib模塊是一個包,包不可以用help()來搜索
2,在這個模塊中,專門限制了help方法
但在這種情況下,顯然是第一種可能性大一些

『捌』 如何找到Python的hashlib的實現

hashlib里因為會有類似Crypto的數字計算,如果純用python做的話,速度很慢,達不到要求,因回此這個具體的實現答是放在_hashlib.pyd,對於Python2.7, 路徑位於C:\Python27\DLLs_hashlib.pyd,採用C實現的這個動態庫里
import hashlib
print help(hashlib.md5)
import _hashlib
print help(_hashlib.openssl_md5)
# 生成的MD5值一樣
S = "this is a demo for md5"
assert hashlib.md5(S).hexdigest() == _hashlib.openssl_md5(S).hexdigest()

『玖』 python hashlib.sha512 為什麼加密結果和shadow不一樣

python的話直接使用crypt就行計算的時候要加上salt值。

cat /etc/shadow | greb root

得到密文。密文由3部分組成,以」$」分隔,第一部分為ID,第二部分為鹽值,第三部分為加密密文

密文示例:
$6$D0xsORq3b7GGsbYv$7L8myKFcJf1FqnvtzD.Zcbx9PeHnwGH1YJm/

$id$salt$encrypted
採用方法鹽值加密密文

$6$D0xsORq3b7GGsbYv #這一段就是鹽值,在加密的時候連同前面的ID一起加密

importcrypt

printcrypt.crpyt("password","$6$D0xsORq3b7GGsbYv")

就可以得到shadow中的密文了。

其實shadow中的密文並不是直接由sha512得出的,還有一些其他操作,例如使用base64加密了salt和hash,可以看下這里man page