@wincrx

Как в Python перевести string в bytes, не меняя string?

Нужно сохранять список паролей в БД в зашифрованом виде, используется библиотека scrypt. Пароли она шифрует в байтах, то есть выглядит пароль примерно так: b"scrypt\x00\x11\x00\x00\x00\x08\x00\x.... Но в базу этот пароль записывается как строка, а для расшифровки нужны именно байты. Как перевести строку подобного вида в байти, сохранив её структуру?
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Если вы хотите сохранить в БД бинарные данные. то у вас есть три варианта:
1) Хранить в БД данные в поле типа binary blob. В таком поле может храниться произвольный набор байтов, он не птается преобраховаться в строку при работе.
2) Хранить в БД экранированную строку в поле обычного строкового типа. При этом все непечатные и спец-символы должны быть экранированны специальной последовательностью, которая состоит из печатных обычных символов. Тогда нужно перед испольованием полученных из БД данных разэкранировать строку и получить байты.
3) Можно хранить данные в БД в обычном текстовом или текстовом blob-поле, но в виде закодированно последовательности base16 или base64. В base64 каждые два байта кодируются тремя символами из 64-битного набора печатных символов. Нужно кодировать и декодировать такие строки при сохранении\загрузке.

Вам больше всего подходит base64. Посмотрите в документации как с этим работать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Для хранения байтов в базах данных обычно из заворачивают в строки в кодировках BinHex, Base64.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы