Форум сайта python.su
Здравствуйте. Полчаса гугла, к сожалению, не помогло полностью найти ответ.
Хочу реализовать на Питоне криптографический алгоритм наподобие DES (знаю, что есть такие модули, но хочу сделать это руками). Сейчас уперся в то, что не знаю как трактовать любые данные в двоичном представлении (для последующих битовых операций, операций сдвига, перестановок итп).
допустим, имеется текстовый файл text.txt, в нем какой то текст. N - размер блока, которым мы будем оперировать. Желаемый алгоритм - чтение блока, операции над ним, записывание блока в другой текст (ака шифрование). Все упирается в том, что не совсем понимаю как в Питоне представить блок как двоичное число.
как я понимаю, чтению блоками будет выглядеть так:
input = open("text.txt", "rb") # открыли для чтения
block = input.read(N) # загрузили первый блок размера N
Офлайн
В строку переводить не нужно - у вас уже есть байты. Строка - последовательность символов.
ord(block) даст число. Делайте над ним свои логические операции.
Офлайн
ord(block) << 1 #смещение битов влево на один или умножение на 2 (быстрое)
ord(block) & 1 #побитовое И
ord(block) | 1 #побитовое ИЛИ
Отредактировано (Ноя. 25, 2010 10:55:57)
Офлайн