社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python3散列给出不同的结果

Alex • 5 年前 • 1940 次点击  

我尝试使用Python3代码计算加密文件(file.gpg)的sha1。

我测试两个函数。

import hashlib
import gnupg

def sha1sum(filename):
    h  = hashlib.sha1()
    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()


def sha1_checksum(filename, block_size=65536):
    sha1 = hashlib.sha1()
    with open(filename, 'rb') as f:
        for block in iter(lambda: f.read(block_size), b''):
            sha1.update(block)
    return sha1.hexdigest()

original = open('file.bin', 'rb')

gpg = gnupg.GPG()
gpg.encoding = 'utf-8'
encrypt = gpg.encrypt_file(original, 
                           recipients=None, 
                           passphrase=password,
                           symmetric='AES256', 
                           output=file)

sum = sha1sum(file)
sum = sha1_checksum(file)

脚本的第一个开头

697cee13eb4c91f41922472d8768fad076c72166
697cee13eb4c91f41922472d8768fad076c72166

a95593f0d8ce274492862b58108a20700ecf9d2b
a95593f0d8ce274492862b58108a20700ecf9d2b

sha1sum()或sha1_checksum()是否错误?

或者文件加密提供不同的file.gpg?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56010
 
1940 次点击  
文章 [ 1 ]  |  最新文章 5 年前