我有一个python代码。我对python很新。有人可以解释这段代码的剂量。
据我所知,这段代码试图解密ID。 我们使用CSV文件传入ID。我无法逐行理解逻辑。特别是hashfn.hexdigest和插入行
import csv
import hashlib
seed_val = b'197504'
outfile = open('ID_nos_hashed.csv','a')
with open('ID_nos_input.csv', 'rb') as infile:
for inline in infile.readlines():
linearray = inline.split(',')
first_item = linearray[0]
hashfn = hashlib.sha1()
hashfn.update(first_item)
hashfn.update(seed_val)
lc_num_hash = hashfn.hexdigest()
uc_num_hash = lc_num_hash.upper()
insert_list = []
insert_list.append(first_item)
insert_list.append(uc_num_hash)
insert_string = ','.join(insert_list)+'\n'
outfile.write(insert_string)
infile.close()
outfile.close()
答案 0 :(得分:1)
此代码从CSV(逗号分隔值)创建哈希表 文件。它的运作如下。
ID_nos_hashed.csv
ID_nos_input.csv
。它很可能是一个列表
CSVs,其中此文件的每一行都是数据记录。first_item
。脚本计算哈希值
hashfn = SHA-1(first_item || seed_val)
其中'||'
表示(字符串)连接运算符。
该脚本将160位哈希值hashfn
转换为十六进制字符串
uc_num_hash其中每个数字是数字或大写字母。因此,十六进制字母表是0123456789ABCDEF。
请注意,hashfn
可以包含不可打印的字符。它是转换
进入十六进制字符串,使其具有人类可读性。
更多信息:
https://en.wikipedia.org/wiki/Hexadecimal
https://en.wikipedia.org/wiki/SHA-1
PS。:数据既不加密也不解密。这两个操作都需要密钥。此脚本只是从一组数据生成(反向索引)哈希表,以最大限度地减少访问单个条目的访问时间。