Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Lấy giá trị checksum MD5, SHA1 của file sử dụng Python - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Md5 và sha1 là hai hàm băm phổ biến và thường được sử dụng để mã hóa mật khẩu hoặc kiểm tra tính toàn vẹn của các tệp tin khi chúng được di chuyển hoặc tải xuống từ internet. Trong hướng dẫn dưới đây, chúng ta sẽ tìm hiểu cách tính giá trị md5 và sha1 của một tệp tin bằng ngôn ngữ lập trình Python.

Lấy giá trị md5 của file sử dụng Python

Với python 3.8+ trở lên

import hashlib

with open("vinasupport.pdf", "rb") as f:
    file_hash = hashlib.md5()
    while chunk := f.read(8192):
        file_hash.update(chunk)

# print(file_hash.digest())
# to get a printable str instead of bytes
print(file_hash.hexdigest())

Kết quả:

Với python 3.7 trở xuống

with open("vinasupport.pdf", "rb") as f:
    file_hash = hashlib.md5()
    chunk = f.read(8192)
    while chunk:
        file_hash.update(chunk)
        chunk = f.read(8192)

print(file_hash.hexdigest())

Chú ý: đọc file 8192 (or 2¹³) bytes sẽ giúp bạn giảm bộ nhớ sử dụng để xử lý code.

Lấy giá trị sha1 của file sử dụng Python

Với Python 3.11

import hashlib

def sha256sum(filename):
    with open(filename, 'rb', buffering=0) as f:
        return hashlib.file_digest(f, 'sha256').hexdigest()

Với Python < 3.11

import hashlib

def sha256sum(filename):
    h  = hashlib.sha256()
    b  = bytearray(128*1024)
    mv = memoryview(b)
    with open(filename, 'rb', buffering=0) as f:
        while n := f.readinto(mv):
            h.update(mv[:n])
    return h.hexdigest()

Với Python < 3.8

import hashlib

def sha256sum(filename):
    h  = hashlib.sha256()
    b  = bytearray(128*1024)
    mv = memoryview(b)
    with open(filename, 'rb', buffering=0) as f:
        for n in iter(lambda : f.readinto(mv), 0):
            h.update(mv[:n])
    return h.hexdigest()

Lấy giá trị sum bằng thư viện Simple File Checksum

Trả về các giá trị MD5, SHA1, SHA256, SHA384, hoặc SHA512 của một file

Cài đặt bằng lệnh

pip3 install simple-file-checksum

Sử dụng

>>> from simple_file_checksum import get_checksum
>>> get_checksum("tst/file.txt")
'9e107d9d372bb6826bd81d3542a419d6'
>>> get_checksum("tst/file.txt", algorithm="MD5")
'9e107d9d372bb6826bd81d3542a419d6'
>>> get_checksum("tst/file.txt", algorithm="SHA1")
'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'

Bên trên là tất cả các cách đê lấy giá trị check sum md5, sha1 bẳng Python thông dụng nhất!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *