Найти - Пользователи
Полная версия: Битовые операции \ работа с типом bytes
Начало » Python для новичков » Битовые операции \ работа с типом bytes
1
Kamigawa
Здравствуйте. Полчаса гугла, к сожалению, не помогло полностью найти ответ.

Хочу реализовать на Питоне криптографический алгоритм наподобие DES (знаю, что есть такие модули, но хочу сделать это руками). Сейчас уперся в то, что не знаю как трактовать любые данные в двоичном представлении (для последующих битовых операций, операций сдвига, перестановок итп).
допустим, имеется текстовый файл text.txt, в нем какой то текст. N - размер блока, которым мы будем оперировать. Желаемый алгоритм - чтение блока, операции над ним, записывание блока в другой текст (ака шифрование). Все упирается в том, что не совсем понимаю как в Питоне представить блок как двоичное число.

как я понимаю, чтению блоками будет выглядеть так:
input = open("text.txt", "rb")     # открыли для чтения
block = input.read(N) # загрузили первый блок размера N
получили тип bytes.
Что дальше делать? Можно перевести в строку, но как перевести строку в двоичное представление я тоже н еочень понимаю.

Буду рад любым советам, либо ссылке, где можно почитать (англ тоже подойдет). Понимаю, что Питон не очень предназначен для операций такого уровня, но все же надеюсь, что возможность имеется.
Андрей Светлов
В строку переводить не нужно - у вас уже есть байты. Строка - последовательность символов.
ord(block) даст число. Делайте над ним свои логические операции.
python4ik
ord(block) << 1 #смещение битов влево на один или умножение на 2 (быстрое)
ord(block) & 1 #побитовое И
ord(block) | 1 #побитовое ИЛИ
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB