将列表中的每个元素转换为sha256

2024-10-01 13:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何将列表中的每个元素转换为sha256,并获取另一个列表中的值。 我使用的数据是:

lst=['Under.csv', 'Upper.csv', 'Below.csv', 'Outside.csv', 'Inside.csv', 'Out.csv', 'in.xlsx', 'water.xlsx', 'sun.xlsx']

我正在尝试使用列表压缩:

lst1=[hashlib.sha256(b"i").hexdigest().upper() for i in lst]

但我只是重复第一个元素的第一个sha256

此外:

lst2=[hashlib.sha256("{}".format(b'i')).hexdigest().upper() for i in lst]

另一个我得到一个错误:

AttributeError: 'bytes' object has no attribute 'format'

如何解决这个问题,并以与lst中的sting相同的顺序获取另一个列表中每个元素的sha256

lst1的输出为:

['DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7']

正如我所说,我只是重复了第一个值


Tags: csv数据informat元素列表forxlsx
2条回答

在第一个示例中,将字符串“i”传递给函数

您应该使用如下内容: [hashlib.sha256(i.encode()).hexdigest().upper() for i in lst]

这里传递i编码的值

因为在hashlib.sha256()函数中使用了相同的字符串,所以得到了相同的值。您需要将i作为变量传递。尝试正确传递变量并对其进行编码

代码:

lst1=[hashlib.sha256(i.encode()).hexdigest().upper() for i in lst]

相关问题 更多 >