Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР2 / encrypt

.py
Скачиваний:
2
Добавлен:
18.06.2024
Размер:
7.16 Кб
Скачать
import random

# Словарь с заменами для каждой буквы
substitutions = {
'О': ['ĸ', 'ƃ', 'ʚ', 'Ś', 'Í', 'Ű', 'Ĝ', '¬', 'ȱ', 'Ɉ', 'Ⱦ', 'ƫ', '´', '\x99', '©', 'Ȉ', 'ś', '\x96', 'Ʈ', 'Lj', 'ɇ', 'ʓ', '\x9c', '\x97', '.', 'ȁ', 'Ƿ', 'â', 'ɏ', 'Į', 'ɾ', 'Ü', 'Ɋ', 'ǐ', 'µ', 'Ē', '\xa0', '^', 'T', 'dz', 'đ', 'ƭ', 'ʀ', '&', 'Ƃ'],
'Е': ['Û', 'Ơ', 'Ŕ', 'ð', '\x85', 'ƅ', 'Š', 'ư', 'ç', 'ɘ', 'Ƭ', '\x92', 'Ż', 'ȟ', '¿', 'ă', 'Ɏ', 'Œ', 'Ō', 'Ò', 'Ȅ', 'Ƈ', 'ľ', 'ĝ', 'ɸ', 'ĩ', 'ȯ', 'ų', 'ʅ', 'û', 'w', 'Dž', 'H', 'ô', 'ɚ', 'á'],
'Ё': ['\x95', 'ɳ', '9', 'ɧ', 'Ʒ', '/', 'ɹ', 'ů', 'L', 'Î', 'Ǻ', 'ij', 'Ƅ', '\x88', 'ş', 'Ĕ', '+', 'ǽ', 'ɥ', 'Ɯ', 'Ů', 'ą', '#', 'ķ', '\x8e', 'ƾ', '§', 'i', 'İ', 'Ƥ', 'Ǫ', '¹', 'Ĭ', 'ʖ', '«', 'ǟ'],
'А': ['ž', 'ī', 'ŋ', 'ɐ', 'Ƒ', 'É', 'Ų', '\x91', 'ȑ', 'Ş', 'Ī', 'Ž', 'ř', 'Ǔ', '¼', 'ǎ', 'lj', 'Ă', 'į', 'Ȁ', '<', 'ȳ', 'ǥ', 'ĺ', 'ƿ', 'ʪ', '@', 'ʏ', 'ì', 'Ȕ', 'ơ'],
'И': ['\xad', '¾', 'ț', 'ɻ', 'Ȃ', ',', 'ʛ', 'Ñ', 'ɍ', 'Ʀ', 'Ð', 'Ȝ', 'ĭ', 'ŕ', 'Ǒ', 'Ȏ', 'ɢ', 'Ź', 'ǂ', '>', 'ë', 'ȿ', 'ſ', 'Ę', '1', 'Ȩ', '·', 'O', 'ȏ', 's', 'ƺ'],
'Н': ['*', 'ʆ', 'Þ', 'š', ':', 'Ƨ', 'å', 'æ', 'Ȟ', 'Ý', 'Ʉ', 'Ÿ', 'Ň', 'Ɵ', 'ǫ', 'ʊ', 'Ŷ', '»', 'ŧ', 'Ţ', 'ɞ', 'ʬ', 'ğ', '×', 'v', 'ʨ', '\x9f'],
'Т': ['þ', 'ʟ', 'Ä', 'Q', 'Ĩ', 'ɺ', 'ā', 'ɣ', 'ō', 'ɂ', 'Ġ', '÷', 'č', 'g', '\x9e', 'ű', 'ȉ', '\x8d', '\x86', 'ɩ', 'Ʌ', 'ĥ', 'A', 'Ė', 'Ț', '%', 'ġ'],
'С': ['ƌ', 'ɷ', 'n', 'N', 'ɶ', 'ɓ', 'ɵ', 'ó', 'nj', 'ȣ', 'Ő', '8', 'ÿ', '\x87', 'ź', '\x8c', 'ŀ', 'ʔ', 'Ȓ', 'Ƕ', '~', 'ɝ', 'ȸ'],
'Р': ['ƍ', 'ȩ', 'è', 'ȷ', 'ɠ', 'ʙ', 'Ȑ', 'ʁ', 'Ě', 'ĵ', 'P', 'ɴ', 'W', 'ã', 'î', 'ɪ', 'ǀ', 'Ĥ', '³', 'ɱ'],
'В': ['ȴ', '¯', 'ǻ', '!', 'Ğ', 'ʫ', 'Ù', 'ď', 'Ʃ', '\x8a', 'ȫ', 'ũ', '4', 'Â', 'c', 'ŏ', '\x98', 'Ŝ', 'ŵ'],
'Л': ['²', 'ǿ', 'ɕ', 'ʂ', 'ģ', 'DZ', 'ɖ', 'k', '¸', 'Ƣ', 'Ú', '¥', 'ʇ', 'dž', 'ǭ', 'ʥ', '¢', 'Ƶ'],
'К': ['LJ', 'Ɍ', 'ʍ', 'U', 'Ǧ', 'l', 'ʜ', 'ä', 'ě', 'Ȗ', 'ǯ', 'E', 'q', 'ƀ'],
'М': ['ē', 'Ȫ', 'Ƴ', 'ǁ', 'Đ', 'Ǎ', 'ɔ', 'Ȯ', 'Ȇ', '6', 'Ȥ', 'Ƽ', '3'],
'Д': ['ɑ', 'r', 'ı', 'Ŀ', 'Ǩ', 'Ķ', 'ù', 'Ǯ', 'NJ', 'ʧ', 'Ǝ', 'Ć', 'ʞ'],
'П': ['_', 'Ǟ', 'Ǹ', '¦', 'Ɗ', 'Ȧ', 'Ɓ', 'ƈ', 'í', 'R', 'Ø', ']'],
'У': ['Ċ', 'ŗ', '5', 'ɰ', '2', 'ʄ', 'Ã', '\x9b', 'Ą', '\x83', '7'],
'Б': ['ʒ', 'ɲ', 'Dz', 'D', 'Ö', 'Ɠ', 'Ì', 'Ɣ', 'ʑ', '\x81'],
'Я': ['e', 'Ȳ', 'Ə', 'ǡ', 'ȹ', 'Ŋ', 'ť', 'ǰ', 'ə'],
'Ы': ['ǖ', 'Ɲ', 'Æ', 'é', '®', 'Ș', 'ę', '¡'],
'З': ['Ĵ', 'Ļ', 'IJ', 'ʝ', 'z', 'ţ', 'ǝ', 'ȶ'],
'Ь': ['`', 'Õ', 'ý', 'ȼ', 'œ', '°', 'ļ'],
'Ъ': ['ɼ', 'ń', 'ș', 'ǧ', '|', 'ƛ', 'ć'],
'Г': ['ʩ', 'Ɂ', 'V', 'Ď', 'u', 'ʣ', 'ȃ'],
'Ч': ['\x9a', 'ƽ', 'ǘ', '½', 'Ó', 'Ȱ'],
'Й': ['ǜ', 'Ư', 'ȭ', 'Ǘ', 'ò'],
'Х': ['ǃ', 'õ', 'Ç', '\x94', 'ʢ'],
'Ж': ['m', 'Ū', 'Ģ', 'ʠ'],
'Ш': ['DŽ', '[', 'Á'],
'Ю': ['Ŵ', 'Ɔ', 'C'],
'Ц': ['ȍ', 'I'],
'Щ': ['ɬ', 'Ř'],
'Э': ['ė', 'Ĺ'],
'Ф': ['ɜ']
}

def substitute_text(text, subs):
substituted_text = ""
# Создаем копию пулов символов для замены для каждой буквы
pools = {key: subs[key][:] for key in subs.keys()}

for letter in text:
if letter in pools:
# Если пул для буквы пуст, восстанавливаем его из исходного списка символов
if not pools[letter]:
pools[letter] = subs[letter][:]
# Выбираем случайный символ замены из пула и удаляем его
chosen_symbol = random.choice(pools[letter])
pools[letter].remove(chosen_symbol)
substituted_text += chosen_symbol
else:
substituted_text += letter # Если нет замены, оставляем символ без изменений

return substituted_text

text_to_substitute = "ЕСЛИВАМНАСАМОМДЕЛЕХОЧЕТСЯУСЛЫШАТЬЭТУИСТОРИЮВЫНАВЕРНОПРЕЖДЕВСЕГОЗАХОТИТЕУЗНАТЬГДЕЯРОДИЛСЯКАКПРОВЕЛСВОЕДУРАЦКОЕДЕТСТВОЧТОДЕЛАЛИМОИРОДИТЕЛИДОМОЕГОРОЖДЕНИЯСЛОВОМВСЮЭТУДАВИДКОППЕРФИЛДОВСКУЮМУТЬНОПОПРАВДЕГОВОРЯМНЕНЕОХОТАВЭТОМКОПАТЬСЯВОПЕРВЫХСКУЧНОАВОВТОРЫХУМОИХПРЕДКОВНАВЕРНОСЛУЧИЛОСЬБЫПОДВАИНФАРКТАНАБРАТАЕСЛИБЯСТАЛБОЛТАТЬПРОИХЛИЧНЫЕДЕЛАОНИЭТОГОТЕРПЕТЬНЕМОГУТОСОБЕННООТЕЦВООБЩЕТООНИЛЮДИСЛАВНЫЕЯНИЧЕГОНЕГОВОРЮНООБИДЧИВЫЕДОЧЕРТИКОВДАЯИНЕСОБИРАЮСЬРАССКАЗЫВАТЬСВОЮАВТОБИОГРАФИЮИВСЯКУЮТАКУЮЧУШЬПРОСТОРАССКАЖУТУСУМАСШЕДШУЮИСТОРИЮКОТОРАЯСЛУЧИЛАСЬПРОШЛЫМРОЖДЕСТВОМАПОТОМЯЧУТЬНЕОТДАЛКОНЦЫИМЕНЯОТПРАВИЛИСЮДАОТДЫХАТЬИЛЕЧИТЬСЯЯИЕМУДБТОЛЬКОПРОЭТОИРАССКАЗЫВАЛАВЕДЬОНМНЕКАКНИКАКРОДНОИБРАТОНЖИВЕТВГОЛЛИВУДЕЭТОНЕОЧЕНЬДАЛЕКООТСЮДАОТЭТОГОТРЕКЛЯТОГОСАНАТОРИЯОНЧАСТОКОМНЕЕЗДИТПОЧТИКАЖДУЮНЕДЕЛЮИДОМОИОНМЕНЯСАМОТВЕЗЕТМОЖЕТБЫТЬДАЖЕВБУДУЩЕММЕСЯЦЕКУПИЛСЕБЕНЕДАВНОЯГУАРАНГЛИИСКАЯШТУЧКАМОЖЕТДЕЛАТЬДВЕСТИМИЛЬВЧАСВЫЛОЖИЛЗАНЕЕЧУТЬЛИНЕЧЕТЫРЕТЫСЯЧИДЕНЕГУНЕГОТЕПЕРЬКУЧАНЕТОЧТОРАНЬШЕРАНЬШЕКОГДАОНЖИЛДОМАОНБЫЛНАСТОЯЩИМПИСАТЕЛЕММОЖЕТСЛЫХАЛИЭТООННАПИСАЛМИРОВУЮКНИЖКУРАССКАЗОВСПРЯТАННАЯРЫБКАСАМЫИЛУЧШИИРАССКАЗТАКИНАЗЫВАЛСЯСПРЯТАННАЯРЫБКАТАМПРООДНОГОМАЛЬЧИШКУКОТОРЫИНИКОМУНЕПОЗВОЛЯЛСМОТРЕТЬНАСВОЮЗОЛОТУЮРЫБКУПОТОМУЧТОКУПИЛЕЕНАСОБСТВЕННЫЕДЕНЬГИСУМАСОИТИКАКОИРАССКАЗАТЕПЕРЬМОИБРАТВГОЛЛИВУДЕСОВСЕМСКУРВИЛСЯЕСЛИЯЧТОНЕНАВИЖУТАКЭТОКИНОТЕРПЕТЬНЕМОГУ"

# Выполнение замены
substituted_text = substitute_text(text_to_substitute.upper(), substitutions)

print("Исходный текст:", text_to_substitute)
print("Текст после замены:", substituted_text)
Соседние файлы в папке ЛР2