Hash เป็นการนำข้อมูลต้นฉบับ มาผ่านกระบวนการทางคณิตศาสตร์ โดยค่า Hash ที่ได้นั้น เราไม่สามารถทำย้อนกลับไปเป็นต้นฉบับได้
ถ้าข้อมูลต้นฉบับมีการเปลี่ยนแปลงเพียงเล็กนิดจะทำให้ค่า Hash ที่แตกต่างจากเดิมอย่างสิ้นเชิง
ขนาดข้อมูลต้นฉบับมีจำนวนเท่าใดค่าของ Hash มีจำนวนบิตคงที่เสมอ และค่า Hash ต้องไม่มีการซ้ำกันหรือซ้ำกันน้อยมากครับ
ในการ Hash ข้อความด้วย Python เราต้องใช้โมดูลที่มีชื่อว่า hashlib ครับ สามารถ Hash ด้วย Algorithm(วิธีการคิด) ได้ดังนี้ครับ
- md5
- sha1
- sha224
- sha256
- sha384
- sha512
- OpenSSL Algorithms
Python Hash ข้อความด้วย MD5
โค้ดตัวอย่างimport hashlib hash = hashlib.md5(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
ผลลัพธ์
b59c67bf196a4758191e42f76670ceba
Python Hash ข้อความด้วย SHA1
โค้ดตัวอย่างimport hashlib hash = hashlib.sha1(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
ผลลัพธ์
011c945f30ce2cbafc452f39840f025693339c42
Python Hash ข้อความด้วย SHA224
โค้ดตัวอย่างimport hashlib hash = hashlib.sha224(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
ผลลัพธ์
9cb7b5b974b6df070cb60bbeb134ea461541b92187d54372f4b144de
Python Hash ข้อความด้วย SHA256
โค้ดตัวอย่างimport hashlib hash = hashlib.sha256(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
ผลลัพธ์
0ffe1abd1a08215353c233d6e009613e95eec4253832a761af28ff37ac5a150c
Python Hash ข้อความด้วย SHA384
โค้ดตัวอย่างimport hashlib hash = hashlib.sha384(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
ผลลัพธ์
7318735a5559d423f7706bbb8b6f10a610cb1b74b308a0e17849ace4bb3a34db34b3b126aa3a
8d73b117f98be0e4af67
Python Hash ข้อความด้วย OpenSSL Algorithms
เราสามารถ Hash ข้อความด้วย OpenSSL Algorithms วิธีการคิดแบบ OpenSSL ได้ครับ โดยมีตัวอย่างการเข้า Hash ข้อความด้วย OpenSSL Algorithms ดังนี้ครับโค้ดตัวอย่าง
import hashlib hash = hashlib.new('ripemd160') hash.update(b"1111") #ข้อความที่จะแฮชคือ 1111 print(hash.hexdigest())
เข้า Hash ข้อความด้วย ripemd160 เป็นหนึ่งใน OpenSSL Algorithms ครับ ขึ้นอยู่กับว่าคอมพิวเตอร์ที่ใช้รองรับ Hash อะไรครับ นอกจากนั้นยังมี DSA และอื่น ๆ ครับ
ผลลัพธ์
3ae2b25dc4fcc262c399c0b6c8247a6c2a8be7f0
Python Hash ข้อความด้วย SHA3
ในการ Hash ข้อความด้วย SHA3 ตอนนี้ทาง Python 3 ยังไม่รองรับ SHA3 ครับ (ขณะที่ปรับปรุงบทความครั้งที่ 1) เราจึงต้องใช้โมดูลที่ชื่อว่า pysha3 ครับโค้ดตัวอย่าง
>>> import sys >>> import hashlib >>> if sys.version_info < (3, 4): ... import sha3 >>> s = hashlib.new("sha3_512") >>> s = hashlib.sha3_512() # alternative >>> s.name 'sha3_512' >>> s.digest_size 64 >>> s.update(b"data") >>> s.hexdigest() '1065aceeded3a5e4412e2187e919bffeadf815f5bd73d37fe00d384fe29f55f08462fdabe1007b993ce5b8119630e7db93101d9425d6e352e22ffe3dcb56b825'
ปรับปรุงครั้งที่ 1 วันที่ 12 กันยายน พ.ศ.2557 เวลา 22.41 น.
ติดตามบทความต่อนะครับ :)
ขอบคุณครับ
ปรับปรุงครั้งที่ 1 วันที่ 12 กันยายน พ.ศ.2557 เวลา 22.41 น.
ตอบลบเพิ่ม Python Hash ข้อความด้วย SHA3