Не удается правильно кодировать строку при чтении из текстового файла (кодирование в sha256 ...) - PullRequest
1 голос
/ 29 марта 2019

В основном то, что я хочу сделать (упрощенно ...):

Я хочу создать 100 биткойн-адресов из моего собственного пароля, которые выглядят примерно так:

password_1 password_2 password_3 password_3

Поэтому, когда я делаю это в программе, я получаю правильный результат:

def public_key(src):
    privatekey = (int(hashlib.sha256(src).hexdigest(), 16))
    return generate_address(privatekey)
def private_key(src):
    privatekey = hashlib.sha256(src).hexdigest()
    return str(privatekey)
herewego = "password_1".encode('utf-8')
somevariable = public_key(herewego)
print somevariable 

^ Это работает, как задумано ... но если я помещу "password_1" в текстовый файл и попробуйтечитать эту строку, это дает совершенно другой результат?

for addr in file:
 address =  addr.encode('utf-8')
 print public_key(address)

Таким образом, проблема, очевидно, в том, что Notepad кодирует текстовый файл, скажем, ansi или utf-8, это не имеет значения, но строка, читаемая оттуда, должна выглядеть по-другому, чем при вводе в Python"...." в питоне?Так какую кодировку использовать или если это невозможно: какая альтернатива блокноту?Кстати, это для Python 2.7 в Windows.

1 Ответ

0 голосов
/ 29 марта 2019

Там могут быть символы новой строки, вы можете попробовать

for addr in file:
address =  addr.rstrip('\n').encode('utf-8')
print public_key(address)
...