Heim > Backend-Entwicklung > Python-Tutorial > Python-Modul zum Lernen von Hashlib

Python-Modul zum Lernen von Hashlib

黄舟
Freigeben: 2016-12-17 16:44:57
Original
1249 Leute haben es durchsucht

1. Übersicht über Hashlib

Beteiligung an Verschlüsselungsdiensten: 14. Kryptografisch Dienste

Hashlib umfasst unter anderem sicheres Hashing und Message Digest und stellt mehrere verschiedene Verschlüsselungsalgorithmus-Schnittstellen bereit, wie z. B. SHA1, SHA224, SHA256, SHA384, SHA512, MD5 usw.

import hashlib
m = hashlib.md5()   #创建hash对象,
md5:(message-Digest Algorithm 5)消息摘要算法,得出一个128位的密文
PRint m             #<md5 HASH object @ 000000000254ADF0>
m.update(&#39;BeginMan&#39;)#更新哈希对象以字符串参数
print m.digest()    #返回摘要,作为二进制数据字符串值
print m.hexdigest() #返回十六进制数字字符串    0b28251e684dfbd9102f8b6f0281c0c5print 
m.digest_size #16
print m.block_size  #64
Nach dem Login kopieren

Verwenden Sie new(), um ein Hash-Objekt mit einem angegebenen Verschlüsselungsmodus zu erstellen

new(name, string=&#39;&#39;)     """
     Return a new hashing object using the named algorithm;
     optionally initialized with a string.     """
h = hashlib.new(&#39;md5&#39;)print h     #<md5 HASH object @ 000000000260BDB0>h2 = hashlib.new(&#39;ripemd160&#39;,&#39;what&#39;)print h2    #<ripemd160 HASH object @ 000000000271B9F0>h.update(&#39;beginman&#39;)print h.hexdigest() #666fc5baa93a7fb207c5bfff03b67732#等效s = hashlib.md5()
s.update(&#39;beginman&#39;)print s.hexdigest() #666fc5baa93a7fb207c5bfff03b67732print h2.hexdigest()    #9c1185a5c5e9fc54612808977ee8f548b2258d31
三、常用属性
print hashlib.algorithms    #(&#39;md5&#39;, &#39;sha1&#39;, &#39;sha224&#39;, 
&#39;sha256&#39;, &#39;sha384&#39;, &#39;sha512&#39;)    列出所有加密算法
print 
h.digest_size         #16 产生的散列的字节大小。 
print 
h.block_size          #64 The internal block size of the hash algorithm in bytes.
Nach dem Login kopieren

4. Allgemeine Methoden

hash.update(arg)

Aktualisieren Sie das Hash-Objekt mit String-Parametern, dann ist m.update(a); m.update(b) äquivalent zu m.update(a+b).

hash.digest()

Gibt den Digest als binären Datenzeichenfolgenwert zurück,

hash.hexdigest()

Zusammenfassung als hexadezimalen Datenzeichenfolgenwert zurückgeben,

hash.copy()

Kopieren

zuletzt in die Testdatei kopiert Zum Testen müssen Sie den MD5-Wert der Datei nach dem Kopieren vergleichen, um festzustellen, ob der Kopiervorgang abgeschlossen ist. Google und Baidu verwenden beide das MD5-Modul, um alle Dateien in den Speicher einzulesen. Bei der Berechnung von MD5 tritt ein Fehler auf, wenn Dateien mit einer Größe von mehr als 1 GB berechnet werden. Brother Timespace hat eine Methode zur inkrementellen Berechnung von MD5 angegeben. Notieren Sie sie:

#!/usr/bin/env pythonimport hashlibimport sys 

def main():    if len(sys.argv) != 2:
        sys.exit(&#39;Usage: %s file&#39; % sys.argv[0])

    filename = sys.argv[1]
    m = hashlib.md5()
    with open(filename, &#39;rb&#39;) as fp: 
        while True:
            blk = fp.read(4096) # 4KB per block
            if not blk: break
            m.update(blk)    print m.hexdigest(), filenameif __name__ == &#39;__main__&#39;:
    main()
Nach dem Login kopieren

Das Obige ist der Inhalt des Lern-Hashlib im Python-Modul. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www. php.cn)!


Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage