Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Keyed Hash สำหรับการตรวจสอบข้อความโดยใช้ Python


HMAC เป็นเฟรมเวิร์ก ซึ่งใช้เพื่อรับรองความถูกต้องของข้อความโดยใช้ฟังก์ชันแฮชเข้ารหัส HMAC ใช้ได้กับ MD5, SHA-1 เป็นต้น

แนวคิดพื้นฐานในการสร้างแฮชเข้ารหัสคือดำเนินการแฮชกับข้อมูลจริงและคีย์ลับ ผลลัพธ์สุดท้ายถูกส่งโดยไม่มีรหัสลับ

ในการใช้โมดูลนี้ เราจำเป็นต้องนำเข้าโมดูล hmac ในโค้ดหลาม

import hmac

วิธีการและคุณลักษณะบางอย่างของโมดูล hmac มีดังนี้ -

วิธีการ hmac.update(ข้อความ)

วิธีนี้ใช้เพื่ออัปเดตวัตถุ hmac ด้วยข้อความที่กำหนด การเรียกใช้ฟังก์ชันนี้ซ้ำๆ จะเทียบเท่ากับการเรียกครั้งเดียวที่มีอาร์กิวเมนต์ที่ต่อกัน

วิธีการ hmac.digest()

วิธีนี้ใช้เพื่อส่งคืนข้อมูลที่ย่อยซึ่งส่งผ่านวิธีการอัพเดต ขนาดของอ็อบเจ็กต์ไบต์เท่ากับไดเจสต์_size มันอาจมีไบต์ในช่วงทั้งหมดตั้งแต่ 0 ถึง 255

วิธีการ hashlib.hexdigest()

วิธีนี้เหมือนกับวิธีไดเจสต์ แต่ผลลัพธ์จะมีเฉพาะค่าเลขฐานสิบหกเท่านั้น วิธีนี้ใช้ส่งข้อมูลผ่านอินเทอร์เน็ตได้ง่ายมาก

วิธีการ hashlib.copy()

วิธีนี้ใช้เพื่อสร้างสำเนาของวัตถุ hmac ในการคำนวณไดเจสต์ของสตริงอย่างมีประสิทธิภาพมากขึ้น วิธีการ copy() นั้นมีประโยชน์

โค้ดตัวอย่าง

import hashlib
import hmac
update_bytes = b'Python123'
password = b'abcde1234'
my_hmac = hmac.new(update_bytes, password, hashlib.md5) #Create hash using md5 algorithm
print("The first digest: " + str(my_hmac.digest()))
print("The Canonical Name: " + my_hmac.name)
my_hmac_cpy = my_hmac.copy() #Create a copy of the hmac object
print("The Copied digest: " + str(my_hmac_cpy.digest()))

ผลลัพธ์

The first digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}"
The Canonical Name: hmac-md5
The Copied digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}"