00.00
Переключение темы

Откройте дверь к безопасности с Crypt-Lock.

Исключительный менеджер паролей Crypt-Lock на базе Electron обеспечивает высокий уровень безопасности и удобства на всех платформах. Наслаждайтесь мощным инструментом, разработанным для защиты ваших цифровых активов, идеально подходящим как для личного пользования, так и для профессионалов.

С легкостью управляйте своими данными, забыв о неудобных блокнотах и необходимости запоминать каждый пароль.
Crypt-Lock удобнее любого другого приложения и гораздо быстрее!
Не рискуйте хранить важные данные в браузере – лучше всего держать их в надежном месте на вашем компьютере.
Crypt-Lock также можно использовать для заметок, с возможностью быстрого поиска по базе данных.

Попробуйте бесплатно в течение 15 дней! После истечения срока пробного использования доступ к функции поиска будет ограничен, но все остальные возможности приложения останутся доступными.

Каждый ключ активации привязан к одному компьютеру. Это означает, что если вы активировали ключ на одном компьютере, он не будет работать на другом, даже если приложение удалено с первого устройства. Ключ активации неразрывно связан с устройством, на котором он был использован.

Приобретя ключ активации, вы получаете доступ ко всем будущим версиям приложения без дополнительной покупки. Я всегда готов ответить на ваши вопросы и принять ваши предложения.
Обеспечьте безопасность своих данных уже сегодня!

AES (Advanced Encryption Standard) с ключом 256 бит.

Это один из самых надежных методов шифрования файлов, используемых в современных компьютерных системах. Он обеспечивает высокий уровень безопасности, защищая данные от несанкционированного доступа и атак. Шифрование с использованием AES 256 предоставляет надежную защиту конфиденциальности данных, делая их практически непроницаемыми для злоумышленников.

Процесс шифрования с использованием AES 256 включает в себя несколько шагов:

  • Выбор ключа: Ключ шифрования состоит из 256 бит (32 байта) и используется для преобразования исходных данных в зашифрованный формат и обратно.
  • Инициализация раундов: Алгоритм AES состоит из нескольких раундов (обычно 10 для 256-битного ключа), в каждом из которых происходят определенные операции с данными.
  • Замешивание данных (SubBytes): Каждый байт данных заменяется на соответствующий байт из заранее определенной таблицы (S-Box). Это обеспечивает нелинейность и запутывание данных.
  • Перемешивание столбцов (ShiftRows): Байты в каждой строке матрицы состояния сдвигаются на фиксированное количество позиций влево. Это дополнительно усложняет структуру данных.
  • Комбинирование столбцов (MixColumns): Байты в каждом столбце матрицы состояния преобразуются с использованием определенных математических операций. Это способствует диффузии данных.
  • Добавление раундового ключа (AddRoundKey): Каждый байт данных XOR-ится с соответствующим байтом ключа текущего раунда. Это окончательное изменение данных перед следующим раундом.
  • Повторение раундов: Шаги с 3 по 6 повторяются определенное количество раз (10 раз для AES 256) для обеспечения высокой степени безопасности.
  • Финальный раунд без MixColumns: В последнем раунде не выполняется операция MixColumns, что делает расшифровку возможной.

Применение AES 256 обеспечивает надежную защиту файлов и данных от множества угроз, включая перехват, вмешательство и взлом.

Для представления масштаба времени.

AES 256 — крайне надежный метод шифрования. Взлом его практически невозможен из-за огромного числа возможных ключей (приближенно 1.1579209×10771.1579209×1077). Современные компьютеры не могут справиться с таким объемом вычислений.
Если представить, что злоумышленники имеют доступ к мощному вычислительному оборудованию, которое способно проверять 1 миллиард (10^9) ключей в секунду, то время, необходимое для проверки всех возможных комбинаций ключей, составит: 10^9 ключей/сек ≈ 3.6710587×10^67 секунд.
Для сравнения, возраст вселенной оценивается примерно в 4.32×10174.32×1017 секунд. Таким образом, время «великой вероятности» для взлома файла, зашифрованного алгоритмом AES 256, выходит за пределы времени существования нашей Вселенной.

Файл Encryption_AES_256.py для зашифровывания.

import os
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# Список файлов, которые нужно игнорировать
IGNORED_FILES = ["Decryption_AES_256.py", "Decryption_AES_256_One_file.py",
                 "Encryption_AES_256.py", "Encryption_AES_256_One_file.py",
                 "256_KeyGen.py"]


def encrypt_file(input_file, output_file, key):

    # Генерируем случайный вектор инициализации (IV) длиной, соответствующей размеру блока AES (16 байт)
    iv = get_random_bytes(16)

    # Создаем объект AES с ключом и режимом шифрования CBC
    cipher = AES.new(key, AES.MODE_CBC, iv)

    # Читаем содержимое файла
    with open(input_file, 'rb') as file_in:
        data = file_in.read()

    # Если данные не кратны 16 байтам, дополняем их
    if len(data) % 16 != 0:
        data += b' ' * (16 - len(data) % 16)

    # Шифруем данные
    encrypted_data = cipher.encrypt(data)

    # Записываем IV и зашифрованные данные в выходной файл
    with open(output_file, 'wb') as file_out:
        file_out.write(iv + encrypted_data)


def encrypt_directory(directory, key):
    for root, _, files in os.walk(directory):
        for filename in files:
            input_file = os.path.join(root, filename)
            output_file = input_file
            if filename not in IGNORED_FILES:
                encrypt_file(input_file, output_file, key)
                # print(f"Файл '{input_file}' успешно зашифрован.")


if __name__ == '__main__':
    # Путь к папке, которую нужно зашифровать
    directory = r'E:\My files\Dev\Encryption_AES_256'
    # 256-битный ключ (32 байта)
    key_hex = "00112233445566778899AABBCCDDEEFF00112233445566778899AABBCCDDEEFF"
    key = bytes.fromhex(key_hex)

    encrypt_directory(directory, key)
    print(f"Encryption completed for on folder '{directory}'.")


# Зашифровывает
# pip install pycryptodome
# Для запуска: python Encryption_AES_256.py

Файл Decryption_AES_256.py для дешифрации.

from Crypto.Cipher import AES
import os
import shutil


def decrypt_file(input_file, output_file, key):
    chunk_size = 64 * 1024  # 64 KB

    # Читаем вектор инициализации (IV) из начала входного файла
    with open(input_file, 'rb') as file_in:
        iv = file_in.read(16)

    # Создаем объект AES с ключом и режимом шифрования CBC
    cipher = AES.new(key, AES.MODE_CBC, iv)

    # Открываем файлы для чтения и записи
    with open(input_file, 'rb') as file_in:
        with open(output_file, 'wb') as file_out:
            # Пропускаем первые 16 байт (IV)
            file_in.read(16)

            while True:
                chunk = file_in.read(chunk_size)
                if len(chunk) == 0:
                    break

                try:
                    # Расшифровываем блок данных и записываем в выходной файл
                    decrypted_chunk = cipher.decrypt(chunk)
                    file_out.write(decrypted_chunk)
                except ValueError as e:
                    # Если возникла ошибка, оставляем исходный файл без изменений
                    print(f"Ошибка при расшифровке файла '{input_file}': {e}")
                    shutil.copyfile(input_file, output_file)
                    break

            # Удаляем дополнение, если присутствует
            file_out.truncate()


def is_ignored_file(file_path):
    # Список файлов, которые нужно игнорировать
    ignored_files = [
        "Decryption_AES_256.py",
        "Decryption_AES_256_One_file.py",
        "Encryption_AES_256.py",
        "Encryption_AES_256_One_file.py",
        "256_KeyGen.py"
    ]

    # Игнорируем файлы по имени
    file_name = os.path.basename(file_path)
    return file_name in ignored_files


def decrypt_directory(directory_path, key):
    for root, _, files in os.walk(directory_path):
        for file_name in files:
            input_file = os.path.join(root, file_name)
            output_file = os.path.join(root, f"decrypted_{file_name}")

            if not is_ignored_file(input_file):
                decrypt_file(input_file, output_file, key)
                os.remove(input_file)
                # Перемещаем обратно в исходное место
                shutil.move(output_file, input_file)


if __name__ == '__main__':
    # Путь к папке для дешифрации файлов
    directory_path = r"E:\My files\Dev\Encryption_AES_256"

    # 256-битный ключ (32 байта)
    key_str = "00112233445566778899AABBCCDDEEFF00112233445566778899AABBCCDDEEFF"
    key = bytes.fromhex(key_str)

    decrypt_directory(directory_path, key)
    print("Все файлы в папке успешно расшифрованы.")


# Расшифровывает
# pip install pycryptodome
# Для запуска: python Decryption_AES_256.py

Файл 256_KeyGen.py для генерации ключей.

import os
import secrets


def generate_256_bit_key():
    # Генерируем случайные байты длиной 32 (256 бит)
    key = secrets.token_bytes(32)
    return key


if __name__ == '__main__':
    key = generate_256_bit_key()
    print("Сгенерированный 256-битный ключ:")
    print(key.hex().upper())


# Скрипт сгенерирует 256 битный ключ
# Для запуска: python 256_KeyGen.py

# Этот скрипт использует secrets.token_bytes() для генерации криптографически безопасных случайных байтов, и затем преобразует байты в строку шестнадцатеричного представления (hex) для вывода в консоль. Вы получите ключ длиной 32 байта, что соответствует 256 битам.

Генератор визуальной структуры каталогов и файлов.

Эта программа создает визуальный каталог файловой системы, отображая файлы и папки в виде иерархической древовидной структуры.

Как использовать:

  • Просто скопируйте ваш путь к каталогу и вставьте его в приложении DirTreeGenerator.exe
  • Обратите внимание изначально в приложении указано игнорировать такие каталоги как: .git, .vscode, node_modules а также будут проигнорированы все файлы и подкаталоги внутри этих папок. У вас есть возможность добавлять или удалять каталоги.
  • Вы может включить чекбокс (No files), после этого программа будет учитывать только каталоги, все файлы будут проигнорированы.
  • Также вы можете использовать вместо приложения файл fast_DirTreeGenerator.bat. Для того чтобы добавить или удалить каталог, вам нужно будет отредактировать в файле fast_DirTreeGenerator.py значение переменной IGNORED_FOLDERS = [‘.git’, ‘.vscode’, ‘node_modules’].
  • Если вы хотите сами собрать проект используйте эти ключи.
    Для Linux: pyinstaller --onefile --windowed --icon=app.png DirTreeGenerator.py
    Для macOS: pyinstaller --onefile --windowed --icon=app.icns DirTreeGenerator.py
    Для Windows: pyinstaller --onefile --windowed --icon=app.ico DirTreeGenerator.py
  • Установите необходимые зависимости:
    pip install pyinstallerpip install pyqt5
  • Для того чтобы добавить свой шрифт, вам нужно преобразовать его в формат base64, для этого в файле Code_base64.py отредактируйте эту строку font_file = "TiltNeon-Regular.ttf" изменив значение переменной на название вашего шрифта., Запустите данный файл, после чего он создаст текстовый файл Font_base64.txt который будет содержать нужную вам кодировку., Затем в файле DirTreeGenerator.py измените значение переменной base64_font = 'your_base64_here' на ваши символы base64.
  • Чтобы изменить иконку файла для панели задач в Windows вам так-же нужно преобразовать её в формат base64, указав в файле Code_base64.py за место font_file = "TiltNeon-Regular.ttf" ваш файл с иконкой. После чего вы сможете изменить её в переменной base64_icon = 'your_base64_here'.
Dir Tree Generator
Dir Tree Generator

Файл 35mb, зависимости должны быть установлены!

Файл 218mb, работает без установки зависимостей

Файл .bat работает совместно с файлом fast_DirTreeGenerator.py, зависимости должны быть установлены!

Поиск фильмов и сериалов по ID КиноПоиск.

Это сайт-агрегатор открытых и закрытых видео-хостингов на наличие фильмов и сериалов.
Он позволяет находить фильмы и сериалы по kinopoisk id.

• Всё что тебе нужно это зайти на сайт kinopoisk
• Скопировать из браузерной строки ID фильма или сериала
• Перейти на сайт https://owlov.ru и вставить этот ID в поле для поиска.

Техническая часть.

Данный сайт работает совместно с моим отдельным сервером, отправляя запросы и получая ответ. Сделано это было для того, чтобы скрыть личные токены которые были предоставлены видеохостингами. Располагается на GitHub Pages и использует SSL сертификат от CloudFlare.

Web-Traffic