Как в Python перевести string в bytes, не меняя string? Нужно сохранять список паролей в БД в зашифрованом виде, используется библиотека scrypt. Пароли она шифрует в байтах, то есть выглядит пароль примерно так: b"scrypt\x00\x11\x00\x00\x00\x08\x00\x.... Но в базу этот пароль записывается как строка, а для расшифровки нужны именно байты. Как перевести строку подобного вида в байти, сохранив её структуру?

14 Фев 2023 в 19:54
419 +1
1
Ответы
1

Для перевода строки в байты в Python можно использовать метод encode(), который преобразует строку в байты, используя определенную кодировку. Чтобы сохранить структуру байтов, можно использовать метод ast.literal_eval() для преобразования строки в литерал Python.

Пример:

import ast
# Пример строки
string = 'b"scrypt\x00\x11\x00\x00\x00\x08\x00"'
# Преобразование строки в байты
bytes_data = ast.literal_eval(string.encode('utf-8'))
print(bytes_data)

Этот код сначала преобразует строку в байты, затем использует ast.literal_eval() для преобразования строки в литерал Python. В результате будет сохранена структура байтов.

16 Апр 2024 в 16:40
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир