Хэширование паролей
Пароли в базе данных будут храниться в виде, хэшированном по алгоритму SHA512. Для получения хэша пароля можно воспользоваться такой программкой на python:
#!/usr/bin/python
from hashlib import sha512
from base64 import b64encode
from sys import argv
if len(argv):
print '{SHA512}' + b64encode(sha512(argv[1]).digest())
print '{SHA512.hex}' + sha512(argv[1]).hexdigest()
else:
print "Usage: sha512 <password>"
Приведённый выше скрипт, адаптированный для Python 3 выглядит следующим образом:
#!/usr/bin/python3
from hashlib import sha512
from base64 import b64encode
from sys import argv
if len(argv):
password = argv[1].encode('UTF-8')
print('{SHA512}' + b64encode(sha512(password).digest()).decode('UTF-8'))
print('{SHA512.hex}' + sha512(password).hexdigest())
else:
print("Usage: sha512 <password>")
Поскольку результат хэширования - это произвольная последовательность байтов, то для удобства использования её кодируют так, чтобы в результате получились только символы, пригодные для печати. Сделать это можно одним из способов - закодировать с помощью base64 или преобразовать в шестнадцатеричную последовательность, а получившиеся цифры преобразовать в текст. Любой из результатов можно поместить в поле password таблицы mailbox.
Вот примеры результатов хэширования пароля:
$ ./sha512.py 1
{SHA512}Tf9Oo0DwqCPxXT9PAati6uDl2lecy4Ufjbnf6ExYsrN7iZA6dA4e4XLaeTpuedVg5ff5vQWKEqKAQz7W+kZRCg==
{SHA512.hex}4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a