用python给文件进行非对称加密import hashlibimport osdef get_sha1f xd = openE练习11txtrbread gys =xd osremoveE练习11txt sha1 = hashlibsha1gys osv = sha1hexdigest printosv bx = bytesosvencoding=utf
在你的代码中,我发现了一些问题:
-
导入了错误的模块名。正确的模块名是
hashlib,而不是hashlib1。 -
在
get_sha1函数中,你直接打开了一个硬编码的文件路径E:\练习1\1.txt,而不是函数参数f所指定的文件。你应该使用f参数来打开文件。 -
在计算SHA1哈希值后,你没有关闭文件句柄。应该在使用完文件后使用
f.close()来关闭文件。 -
在移除文件之前,你将文件内容赋值给了变量
gys,但是这个变量在后续没有使用到。你可以直接将读取的文件内容传递给hashlib.sha1()函数。 -
在计算SHA1哈希值之后,你将结果转换为了UTF-8编码的字节,并写入了同一个文件。这会导致文件内容被覆盖,只剩下SHA1哈希值。你可以选择将哈希值保存在另一个文件中,或者将哈希值附加在原文件的末尾。
综上所述,以下是修正后的代码:
import hashlib
import os
def get_sha1(f):
with open(f, 'rb') as file:
content = file.read()
sha1 = hashlib.sha1(content).hexdigest()
with open(f, 'a') as file:
file.write('\n')
file.write(sha1)
get_sha1('E:\练习1\1.txt')
这个修正后的代码将会读取指定路径的文件,计算其SHA1哈希值,并将哈希值附加在文件的末尾。请注意,这会修改原文件。如果你想要保存原文件的副本,可以在函数中先复制一份文件内容,再进行哈希计算和文件写入操作
原文地址: https://www.cveoy.top/t/topic/ieQO 著作权归作者所有。请勿转载和采集!