Computer >> Máy Tính >  >> Lập trình >> Python

Keyed Hash để xác thực tin nhắn bằng Python

HMAC là một khuôn khổ, nó được sử dụng để xác thực thông điệp bằng cách sử dụng các hàm băm mật mã. HMAC có thể được sử dụng cho MD5, SHA-1, v.v.

Ý tưởng cơ bản để tạo băm mật mã là thực hiện băm trên dữ liệu thực và khóa bí mật. Kết quả cuối cùng được gửi mà không có khóa bí mật.

Để sử dụng mô-đun này, chúng tôi cần nhập mô-đun hmac trong mã python.

import hmac

Một số phương thức và thuộc tính của mô-đun hmac như sau -

Phương thức hmac.update (tin nhắn)

Phương thức này được sử dụng để cập nhật đối tượng hmac với thông báo đã cho. Lệnh gọi lặp lại của hàm này tương đương với lệnh gọi đơn với các đối số được nối.

Phương thức hmac.digest ()

Phương thức này được sử dụng để trả về dữ liệu đã tiêu hóa được chuyển qua phương thức cập nhật. Kích thước của đối tượng byte giống như kích thước tiêu hóa. Nó có thể chứa các byte trong toàn bộ phạm vi từ 0 đến 255.

Phương thức hashlib.hexdigest ()

Phương thức này giống như phương thức thông báo nhưng kết quả sẽ chỉ chứa các giá trị thập lục phân. Phương pháp này được sử dụng để gửi dữ liệu qua internet rất dễ dàng.

Phương thức hashlib.copy ()

Phương thức này được sử dụng để tạo một bản sao của đối tượng hmac. Để tính toán bản tóm tắt các chuỗi theo cách hiệu quả hơn, phương thức copy () rất hữu ích.

Mã mẫu

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()))

Đầu ra

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'}"