Исходник 0.3.1 | Cryptoyam | Зашифруй себя

yam0T0

Новичок
Автор темы
6
0
Привет!
Я начинающий python разработчик, и написал программу которая кодирует ваше сообщение которое вы введете в терминале/интерпретаторе. Там есть 10 языков шифрования, правда азбука морзе на данный момент не работает.



Я буду обновлять и улучшать код, планирую сделать для телефонов на kivy и для пк на tkinter.


update 0.1
9 языков шифрования
терминал гуи



update 0.2
убрал азбуку морзе и бесполезный шифр который не шифрует))
сделал красочный интерфейс, добавил красок
сделал код понятнее и распределил на блоки
1000029366.jpg



update 0.3
сделал меню на табулате
поменял офомление
добавил qrcode
добавил генерацию рандомного текста + в шифровании
добавил загрузку текста из файла (текст должен находиться в одной папке с кодом)
добавил собственный шифр который невозможно разгадать человеку который не знает его, (в скором времени сделаю шифрование пароля на этом языке шифрования)
переделал xor
добавил декодировку на некоторых языках.
переделал цезаря
теперь после результата будет высвечиватся press to continue (нажмите для продолжения) (для удобства)
добавил какой то текст с интернета символами на заставку
После каждого шифрования будет запрашивать файл для сохранения этого шифра (не знаю зачем но пускай будет)
по сравнению с прошлой версией прибавилось +4кб
1000029531.jpg



update 0.3.1
просто поменял название и заставку



!ВНИМАНИЕ! на данный момент если вы с телефона, вы можете запустить этот код через термукс, либо же если вы с пк через терминал.


Зависимости:
hashlib
base64
 colorama
tabulate
qrcode
random
time
sys
 string
pyfiglet



команда запуска:
update 0.1:

python main.cpython-311.pyc
=
update 0.2:
python code0.2.py
=
update 0.3
python code0.3.py
(если у вас в отдельной папке укажите cd)
 

Вложения

  • codiro0.1.zip
    4.2 KB · Просмотры: 4
  • code0.2.py
    4.7 KB · Просмотры: 0
  • code0.3.py
    8.8 KB · Просмотры: 1
  • code0.3.1.py
    7.8 KB · Просмотры: 0
Последнее редактирование:

chromiusj

fullstack eblan
Модератор
5,749
4,059
а зачем это дело еще и компилировать то?

Python:
import base64
import hashlib

def encode_base64(text):
    return base64.b64encode(text.encode('utf-8')).decode('utf-8')

def decode_base64(encoded_text):
    return base64.b64decode(encoded_text).decode('utf-8')

def encode_utf8(text):
    return text.encode('utf-8')

def decode_utf8(byte_text):
    return byte_text.decode('utf-8')

def encode_hex(text):
    return text.encode('utf-8').hex()

def decode_hex(encoded_text):
    return bytes.fromhex(encoded_text).decode('utf-8')

def hash_md5(text):
    return hashlib.md5(text.encode('utf-8')).hexdigest()

def hash_sha256(text):
    return hashlib.sha256(text.encode('utf-8')).hexdigest()

def caesar_cipher(text, shift):
    result = ''
    for char in text:
        if char.isalpha():
            shifted = chr((ord(char.lower()) - 97 + shift) % 26 + 97)
            if char.isupper():
                shifted = shifted.upper()
            result += shifted
        else:  # inserted
            result += char
    return result

def xor_cipher(text, key):
    return ''.join((chr(ord(c) ^ key) for c in text))

def rot13(text):
    return text.translate(str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'))
MORSE_CODE_DICT = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': 'O', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', '-.--': 'Z', '-.--': '--..', '1': '1', '

def encode_morse(text):
    text = text.upper()
    morse_code = []
    for char in text:
        if char!= ' ':
            morse_code.append(MORSE_CODE_DICT.get(char, ''))
        else:  # inserted
            morse_code.append(' ')
    return ' '.join(morse_code)

def decode_morse(morse_text):
    morse_code_dict_reversed = {value: key for key, value in MORSE_CODE_DICT.items()}
    words = morse_text.split('   ')
    decoded_message = ''
    for word in words:
        letters = word.split()
        for letter in letters:
            decoded_message += morse_code_dict_reversed.get(letter, '')
        decoded_message += ' '
    return decoded_message.strip()

def xor_cipher_simple(text, key):
    return ''.join((chr(ord(c) ^ key) for c in text))
print('Выберите метод шифрования:')
print('1. Base64')
print('2. UTF-8 (Преобразование в байты)')
print('3. Hex')
print('4. MD5 (Хэширование)')
print('5. SHA-256 (Хэширование)')
print('6. Caesar Cipher (Цезарь сдвиг)')
print('7. XOR Cipher')
print('8. ROT13')
print('9. Азбука Морзе')
print('10. Простое XOR шифрование')
action = input('Введите номер действия (1-10): ')
if action == '1':
    text = input('Введите текст для кодирования: ')
    encoded = encode_base64(text)
    print(f'Закодированный текст (Base64): {encoded}')
 

yam0T0

Новичок
Автор темы
6
0
а зачем это дело еще и компилировать то?

Python:
import base64
import hashlib

def encode_base64(text):
    return base64.b64encode(text.encode('utf-8')).decode('utf-8')

def decode_base64(encoded_text):
    return base64.b64decode(encoded_text).decode('utf-8')

def encode_utf8(text):
    return text.encode('utf-8')

def decode_utf8(byte_text):
    return byte_text.decode('utf-8')

def encode_hex(text):
    return text.encode('utf-8').hex()

def decode_hex(encoded_text):
    return bytes.fromhex(encoded_text).decode('utf-8')

def hash_md5(text):
    return hashlib.md5(text.encode('utf-8')).hexdigest()

def hash_sha256(text):
    return hashlib.sha256(text.encode('utf-8')).hexdigest()

def caesar_cipher(text, shift):
    result = ''
    for char in text:
        if char.isalpha():
            shifted = chr((ord(char.lower()) - 97 + shift) % 26 + 97)
            if char.isupper():
                shifted = shifted.upper()
            result += shifted
        else:  # inserted
            result += char
    return result

def xor_cipher(text, key):
    return ''.join((chr(ord(c) ^ key) for c in text))

def rot13(text):
    return text.translate(str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'))
MORSE_CODE_DICT = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': 'O', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', '-.--': 'Z', '-.--': '--..', '1': '1', '

def encode_morse(text):
    text = text.upper()
    morse_code = []
    for char in text:
        if char!= ' ':
            morse_code.append(MORSE_CODE_DICT.get(char, ''))
        else:  # inserted
            morse_code.append(' ')
    return ' '.join(morse_code)

def decode_morse(morse_text):
    morse_code_dict_reversed = {value: key for key, value in MORSE_CODE_DICT.items()}
    words = morse_text.split('   ')
    decoded_message = ''
    for word in words:
        letters = word.split()
        for letter in letters:
            decoded_message += morse_code_dict_reversed.get(letter, '')
        decoded_message += ' '
    return decoded_message.strip()

def xor_cipher_simple(text, key):
    return ''.join((chr(ord(c) ^ key) for c in text))
print('Выберите метод шифрования:')
print('1. Base64')
print('2. UTF-8 (Преобразование в байты)')
print('3. Hex')
print('4. MD5 (Хэширование)')
print('5. SHA-256 (Хэширование)')
print('6. Caesar Cipher (Цезарь сдвиг)')
print('7. XOR Cipher')
print('8. ROT13')
print('9. Азбука Морзе')
print('10. Простое XOR шифрование')
action = input('Введите номер действия (1-10): ')
if action == '1':
    text = input('Введите текст для кодирования: ')
    encoded = encode_base64(text)
    print(f'Закодированный текст (Base64): {encoded}')
просто чтобы не скопипастили
 

moreveal

Известный
Проверенный
937
630
за что, я только начинаю
я ж тебя не оскорбляю, прост пытаюсь в реальность вернуть: ну для новичка норм, ты познакомился с вариантами шифрования/кодирования (что, кстати, не одно и то же, поэтому название темы не оч отражает действительность), но практической ценности не несёт, никто не станет декомпилировать конкретно этот тул, потому что он использует общедоступные/широко известные техники, ну и дублирует кучу онлайн-сервисов, которые обычно юзают в таких случаях, когда надо быстренько перегнать "что-то" во "что-то": странно держать у себя где-то в воркспейсе файлик, который работает на единственной версии питона чисто для того чтобы base64 декоднуть условно

ну и .pyc - фиктивная "защита", он не для этих целей служит
 
  • Нравится
Реакции: ГОХА | GoxaShow

yam0T0

Новичок
Автор темы
6
0
я ж тебя не оскорбляю, прост пытаюсь в реальность вернуть: ну для новичка норм, ты познакомился с вариантами шифрования/кодирования (что, кстати, не одно и то же, поэтому название темы не оч отражает действительность), но практической ценности не несёт, никто не станет декомпилировать конкретно этот тул, потому что он использует общедоступные/широко известные техники, ну и дублирует кучу онлайн-сервисов, которые обычно юзают в таких случаях, когда надо быстренько перегнать "что-то" во "что-то": странно держать у себя где-то в воркспейсе файлик, который работает на единственной версии питона чисто для того чтобы base64 декоднуть условно

ну и .pyc - фиктивная "защита", он не для этих целей служит
а как типо сделать чтобы работало на всех версиях пайтон

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

moreveal

Известный
Проверенный
937
630
а как типо сделать чтобы работало на всех версиях пайтон
не бояться распространять исходники; "на всех версиях" оно работать не факт, что будет, но 3.x - можешь практически быть уверенным, что да, поэтому не стесняйся показывать код, даже если он кажется тебе плохим - это норма, наоборот возможность другим указать на твои ошибки, ты и не обязан с самого начала всё знать

а если не хочешь чтобы оттуда что-то брали себе - проще не писать на пайтоне, и всё равно это не выход, лишь усложнение)
 

yam0T0

Новичок
Автор темы
6
0
up update

в кьюар код можно залить ссылку на сайт и использовать

up 0.3.1
 
Последнее редактирование: