У меня проблема с заполнением хэша 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 с передачей параметра code. Затем список хэшей с соответствующими именами пользователей читается из текстового файла и сохраняется в списке.
Вывод скрипта с текстовым файлом, содержащим только один хеш и имя, выглядит следующим образом:
2244 [['$ pbkdf2-sha256 $ 200000 $ AuCcU0pJidHam1NKyXnPmQ $ TmzQ.cWXKnx7u.dd023qoltVxeuaPafEq7Lvyywxf9o \ n', '' Fabian '], [' '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ',' ',' '', '', '' '', '', '', '', '' '', '', '', '' '', '', '' ',' '' ',' '' ',' '', ',' '' ',' '', ',' ',' '', '' ',' ',' ',' '', '', '', '', '', '', '', '', '' '], [' ',' '], [' ',' '], [' ',' '], [' ',' ']] [' $ pbkdf2-sha256 $ 200000 $ AuCcU0pJidHam1NKyXnPmQ $ TmzQ.cWXKnx7u.dd023qoltWx7va \ п ']
Как вы можете видеть, это работает отлично, но '\ n' добавляется к хешу оба раза, когда он печатается. Я полагаю, что это причина того, что в самой последней печати выдается «Ошибка ввода: Неверное заполнение».
Проблема в том, что я не знаю, как заставить это работать, поскольку и имя, и хеш будут записаны в одной строке, если я удалю '\ n'. Я попытался написать строки в текстовом файле как вручную, так и с помощью скрипта, используя
file = open("hashes.txt","w")
file.write(hash)
file.write("Fabian")
но это не решает проблему. Примечание: текстовый файл выглядит так:
hash0
name0
hash1
name1
etc
Кто-нибудь из вас был в такой ситуации? Любая помощь или идея очень ценится, спасибо заранее!