Вызов verify_sha256_hash (пароль, hash_expected) с
паролем, hash_expected = 'Быстрая коричневая лиса перепрыгивает через ленивую собаку', ''
В результате получается "94acf27cc065449e756a4f164ed5a5254d5d5d5d5", cd5d5d5d5d5d5d5d5d5d5d5d5d3106404мы получаем из командной строки, думал, что они вызывают одни и те же двоичные файлы openssl.
То есть
$ echo "Быстрая коричневая лиса перепрыгивает через ленивую собаку" |openssl dgst -sha256
(stdin) = c03905fcdab297513a620ec81ed46ca44ddb62d41cbbd83eb4a5a3592be26a69
или $ echo «Быстрая коричневая лиса перепрыгивает через ленивую собаку» |openssl sha256
(stdin) = c03905fcdab297513a620ec81ed46ca44ddb62d41cbbd83eb4a5a3592be26a69
Вот коды Python для вызовов:
def verify_sha256_hash(passcode, hash_expected):
command = 'echo "' + passcode + '" | ' + openssl_path + 'openssl dgst -sha256'
process_resultant = subprocess_cmd(command)
if (process_resultant == hash_expected):
print('Verification OK')
else:
print('Verification OK NOT')
return
def subprocess_cmd(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
print("command: ", command)
process_resultant = str(process.communicate()[0].strip())
process_resultant = process_resultant.lstrip('b\'(stdin)= ').rstrip('\'')
print("process_resultant: ", process_resultant)
return process_resultant
Как это можно исправить?Спасибо.