/
olegk2001
/
CryptoApp
Обзор
Документация
Войти
/
olegk2001
/
CryptoApp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test/test.py
99 строк
6 KB
Oleg K
Initial sanitized commit
08 июн 2026, 10:08
08 июн 2026, 10:08
104414c
Код
Авторство
О чём код?
from typing import Final import numpy as np from numpy._typing import NDArray key = '11100110110001101110111110111000100010011111010111001010010101010101010101010101010101010101011010101110101' + \ '1101010100100010111000000111100011100010000101101011010011111011100100110101101110000110110011010000101000110' + \ '0110100001001001111100011011011011101100111110111000001010101110101100101111001010010001000110110011000110000' + \ '1011111010101001000111101010101110101111001110101011100111001111011001010111001110100000000111010001101001001' + \ '1000000011001110000000011000001000011111000001110010111111010101101010000010100001011111011110000101110110011' + \ '1001110110011111010100011001010101001011001100000001011001011101110111000011110101011110101101111010100101011' + \ '0011111110010000110100010001111110111101000011010011001100011110001001100000001010011011111111111010100110100' + \ '0001101100110000101111000010011000011100110100000011000000111011001001101111100111000001101000001100110110110' + \ '1111100101000111000010001010010100100010010010100000100110110001101101101100001100110000010010100011001111101' + \ '1111001111010001011011101011101110010001001101000001100000011001011110011100001010110001010110001000110101101' + \ '0011100011010101101111010110001001111110111000010011111100000011000101000010011011000111100011111101101110111' + \ '1100011000010100001010110100111111011010110111001000111011001110000001101010100110001110101100000011101011110' + \ '0001000100011100010111000111010110100100110101101101000011010100011010111101010110100100111110110111001011011' + \ '0011110110100011100001100011000101100010111100000101100100101100111111001000100001000001111111011100100101010' + \ '1001010111110100101001101100001010110001101000000010110100111110001101101101110110011111011100000101010111010' + \ '1100101111001010010001000110110011000110000101111101010100100011110101010111010111100111010101110011100111101' + \ '1001010111001110100000000111010001101001001100000001100111000000001100000100001111100000111001011111101010110' + \ '1010000010100001011111011110000101110110011100111011001111101010001100101010100101100110000000101100101110111' + \ '0111000011110101011110101101111010100101011001111111001110011011000110111011111011100010001001111101011100101' + \ '0010101010101010101010101010101010101011010101110101100100011010101001000101110000001111000111000100001011010' + \ '1101001111101110010011010110111000011011001101000010100011011011010000100100111001101100011011101111101110001' + \ '0001001111101011100101001010101010101010101010101010101010101101010111010110010001101010100100010111000000111' + \ '1000111000100001011010110100111110111001001101011011100001101100110100001010001101101101000010010011111000110' + \ '1101101110110011111011100000101010111010110010111100101001000100011011001100011000010111110101010010001111010' + \ '1010111010111100111010101110011100111101100101011100111010000000011101000110100100110000000110011100000000110' + \ '0000100001111100000111001011111101010110101000001010000101111101111000010111011001110011101100111110101000110' + \ '0101010100101100110000000101100101110111011100001111010101111010110111101010010101100111111100100001101000100' + \ '0111111011110100001101001100110001111000100110000000101001101111111111101010011010000011011001100001011110000' + \ '1001100001110011010000001100000011101100100110111110011100000110100000110011011011011111001010001110000100010' + \ '1001010010001001001010000010011011000110110110110000110011000001001010001100111110111110011110100010110111010' + \ '1110111001000100110100000110000001100101111001110000101011000101011000100011010110100111000110101011011110101' + \ '1000100111111011100001001111110000001100010100001001101100011110001111110110111011111000110000101000010101101' + \ '0011111101101011011100100011101100111000000110101010011000111010110000001110101111000010001000111000101110001' + \ '1101011010010011010110110100001101010001101011110101011010010011111011011100101101100111101101000111000011000' + \ '1100010110001011110000010110010010110011111100100010000100000111111101110010010101010010101111101001010011011' + \ '0000101011000110100000001011010011111000110110110111011001111101110000010101011101011001011110010100100010001' + \ '1011001100011000010111110101010010001111010101011101011110011101010111001110011110110010101110011101000000001' + \ '110100011010010011000000011001110000000011100101111101000111101011' class Cripto: def __init__(self, key): self.KEY = key self.ValueType: Final = np.uint8 self.BlockType: Final = NDArray[self.ValueType] def key_dev(self): # Разбиение строки на блоки по 128 бит (16 байт) keys_binary = [self.KEY[i:i + 128] for i in range(0, 128*16, 128)] # Преобразование каждого блока в массив формата np.array TEST_KEY_1 = np.array( [int(keys_binary[0][i:i + 8], 2) for i in range(0, 128, 8)], dtype=self.ValueType, ) TEST_KEY_2 = np.array( [int(keys_binary[1][i:i + 8], 2) for i in range(0, 128, 8)], dtype=self.ValueType, ) TEST_KEY_3 = np.array( [int(keys_binary[2][i:i + 8], 2) for i in range(0, 128, 8)], dtype=self.ValueType, ) TEST_KEY_4 = np.array( [int(keys_binary[3][i:i + 8], 2) for i in range(0, 128, 8)], dtype=self.ValueType, ) Counter = [ np.array( [int(keys_binary[4][i:i + 8], 2) for i in range(0, 128, 8)], dtype=self.ValueType, ) for i in range(4, 12) ] imitation_insert = int(self.KEY[128*12+1:], 2) return { "TEST_KEY_1": TEST_KEY_1, "TEST_KEY_2": TEST_KEY_2, "TEST_KEY_3": TEST_KEY_3, "TEST_KEY_4": TEST_KEY_4, "Counter": Counter, "imitation_insert": hex(imitation_insert) # int(str(imitation_insert), 16) } print(len(key)) app = Cripto(key) array = app.key_dev() for iter in array: print(iter, ':=>', array[iter], '\n')