python-hash和md5算法


一、HASH

  HASH——‘哈希’,輸入任意長度的值,生成固定長度的散列值。

  注意:hash所生成的值在python程序本次運算時一直,下次程序運算時會生成另一個hash值。

二、MD5

  MD5信息摘要算法

2.1功能:

       1、輸入任意長度,經過算法,輸出128位固定長度的值(數字指紋)。

  2、不同的輸入,得到不同的結果(唯一性)

2.2特點:

  1、壓縮性:輸入任意,MD5值長度固定

  2、容易計算:原始數據很容易就能算出MD5的值。

  3、抗修改:修改了一點點,所算出MD5值差別很大。

  4、強碰撞:已知一個MD5值,想通過另一個值算出相同的值很難。

2.3是否可逆?

  MD5是基於hash算法,在計算過程中原文數據就丟失了,所以不可逆。

2.4有什么用途?

  1.防止被篡改

  2.防止看到明文

  3.數字簽名

# @File    : 4.10.hash加密算法.py
# @Software: PyCharm

import hashlib

# 1.將字符串,通過加密算法,變成固定長度的輸出
s = 'abc'
print(len(str(hash(s)))*4, hash(s))

# 2.生成md5數字指紋。
# 第1種寫法:
s2 = b'!@abc'  # 定義字節型字符串
md = hashlib.md5()  # 導入md5算法
md.update(s2)  # 把值傳給md5算法

print(md.digest())  # 生成一個128位的2進制數
print('MD5', '長度:', len(md.hexdigest())*4, md.hexdigest())
# 第2種寫法:
print(hashlib.md5("!@abc".encode("utf-8")).hexdigest())

# 3.SHA-1

hash = hashlib.sha1()
hash.update('admin'.encode('utf-8'))
print('SHA-1', '長度:', len(hash.hexdigest())*4, hash.hexdigest())

# 4.SHA-256

hash = hashlib.sha256()
hash.update('admin'.encode('utf-8'))
print('SHA-256', '長度:', len(hash.hexdigest())*4, hash.hexdigest())

# 5.SHA-384

hash = hashlib.sha384()
hash.update('admin'.encode('utf-8'))
print('SHA-384', '長度:', len(hash.hexdigest())*4, hash.hexdigest())

# 5.SHA-512

hash = hashlib.sha512()
hash.update('admin'.encode('utf-8'))
print('SHA-384', '長度:', len(hash.hexdigest())*4, hash.hexdigest())

 


免責聲明!

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



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