Python sha256哈希填充问题

时间:2018-08-26 10:27:01

标签: python sha256

我对sha256哈希的填充有问题。

#!/usr/bin/env python
import sys
import os
import hashlib
from passlib.hash import pbkdf2_sha256

code = str(sys.argv[1])
print(code)

array = [["",""],["",""],["",""],["",""],["",""],["",""],["",""],["",""]]
counter = 0
iteration = 1

file = open("hashes.txt", "r")
for i in file:
  if iteration == 1:
    array[counter][0] = str(i)
    iteration = 2
  else:
    array[counter][1] = str(i)
    iteration = 1

  if iteration == 1:
  counter = counter +1;

print(array)

print([array[0][0]])
print pbkdf2_sha256.verify(code,array[0][0])

上面的链接中的脚本由.php文件调用,并传递参数“代码”。然后,从文本文件中读取带有相应用户名的哈希列表,并将其存储在列表中。

带有仅包含一个哈希和名称的文本文件的脚本输出如下所示:

2244 [['$ pbkdf2-sha256 $ 200000 $ AuCcU0pJidHam1NKyXnPmQ $ TmzQ.cWXKnx7u.dd023qoltVxeuaPafEq7Lvyywxf9o \ n','Fabian'],['',``],[ '],['',“],[”,“],[”,“],[”,“]]] ['$ pbkdf2-sha256 $ 200000 $ AuCcU0pJidHam1NKyXnPmQ $ TmzQ.cWXKnx7u.dd023qoltVxeuaPafEq7Lvy \ n']

如您所见,这很好用,但是在打印时两次都将'\ n'附加到哈希中。我想这就是为什么最后一次打印会抛出“ TypeError:不正确的填充”的原因。

问题是:我不知道如何进行这项工作,因为如果删除“ \ n”,则名称和哈希将写在同一行中。我尝试使用

手动和脚本编写文本文件中的行
file = open("hashes.txt","w")
file.write(hash)
file.write("Fabian")

但这不能解决问题。注意:文本文件如下所示:

hash0
name0
hash1
name1
etc

你们中有人遇到过这种情况吗?非常感谢您的任何帮助或想法,谢谢!!

1 个答案:

答案 0 :(得分:1)

使用rstrip阅读一行后,您可以删除换行符。

line = "123\n"
line = line.rstrip('\n')