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

Hàm băm an toàn và thông báo thông báo bằng Python

Đối với quá trình băm và thông báo an toàn, chúng ta nên sử dụng mô-đun băm. Mô-đun này thực hiện một giao diện chung cho các thuật toán băm an toàn khác nhau như SHA1, SHA224, SHA256, SHA512, v.v. Ngoài ra, thuật toán RSA’s MD5. Các thuật toán cũ hơn được gọi là Thông báo thông báo và các phương pháp mới được gọi là Băm bảo mật.

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

import hashlib

Trong phương pháp này, có một số thuật toán được xác định trước như md5, sha1, sha224, sha256, sha512 có mặt. Chúng tôi có thể thêm các thuật toán bổ sung từ thư viện OpenSSL.

Một số phương thức, hằng số của mô-đun băm như sau -

Hằng số hashlib.algorithm_guranteed

Nó sẽ trả về tên của các thuật toán băm, được đảm bảo sẽ được mô-đun này hỗ trợ cho tất cả các nền tảng khác nhau.

Hằng số hashlib.algorithm_available

Nó sẽ trả về tên của các thuật toán băm, có sẵn trong trình thông dịch Python đang chạy.

Hằng số hashlib.digest_size

Nó sẽ trả về kích thước của hàm băm kết quả tính bằng byte.

Hằng số hashlib.block_size

Nó sẽ trả về kích thước khối bên trong của thuật toán băm tính bằng byte.

Phương thức hashlib.new (name [, data])

Nó là một phương thức khởi tạo. Nó lấy tên thuật toán mong muốn làm đối số đầu tiên của nó. Nó có thể sử dụng các hàm băm được xác định trước hoặc các thuật toán khác từ thư viện OpenSSL.

Phương thức hashlib.update (arg)

Phương thức này được sử dụng để cập nhật đối tượng băm với đối số đã 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 hashlib.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.

Mã mẫu

import hashlib
my_hash1 = hashlib.md5() #Choose md5 and update with a bytes
update_bytes = b'Python123'
my_hash1.update(update_bytes)
print("Result after digesting: " + str(my_hash1.hexdigest()))
print("Digest Size: " + str(my_hash1.digest_size))
my_hash2 = hashlib.sha256() #Choose SHA256 and update with same bytes
my_hash2.update(update_bytes)
print("Result after digesting: " + str(my_hash2.hexdigest()))
print("Digest Size: " + str(my_hash2.digest_size))

Đầu ra

Result after digesting: ae35eacb1cb6f6d38c29a04ecb2d7471
Digest Size: 16
Result after digesting: bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b878007369e373ff419b1e
Digest Size: 32