Python的加密服務(wù)包括三個(gè)包:
hashlib包
hmac包
secrets包
可能遇到的問題:
1. hashlib中的md5算法默認(rèn)返回128bit的digest,用32位16進(jìn)制表示,有時(shí)候看見有的表示只用了16位16進(jìn)制咧虎,怎么獲得?
32位16進(jìn)制[8:-8] 即是所需要的凫岖,取中間一半即可宪赶。
2. hashlib包中的hash算法實(shí)例痛单,一般有哪些方法?
方法|作用
:|:
update() |被摘要的內(nèi)容塑顺,update(a) + update(b) = update(a + b)
digest() |摘要
hex_digest() |16進(jìn)制摘要
copy() |返回當(dāng)前摘要的拷貝恤浪,利用被取摘重復(fù)的內(nèi)容畅哑,更快地獲取hash值
block_size |算法中的塊大小
digest_size |摘要字節(jié)長(zhǎng)度
3. hmac包與hashlib包有什么不同?
在hash的基礎(chǔ)上,增加了一個(gè)key水由,即可以自定義一個(gè)密鑰
4. 新增的secrets包荠呐,和random有什么不同?
secrets使用操作系統(tǒng)提供的算法而獲取隨機(jī)。