Github
https://github.com/denisxab/SHISH
Захотелось сделать очень простое криптографическое приложение для текста, вдруг будет такая необходимость.
Смысл в том что шифрование происходит случайными числами от заданных bit, второе значение rand задает количество ключей для каждого символа, чтобы он не повторялся и нельзя было найти закономерность текста.
Сам ключ храниться в .json поэтому отправить, посмотреть, редактировать его просто.
Как это работает ?
- Создать ключ.
- Поделиться ключом.
- Написать текст в окно «Закодировать» нажать на кнопку.
- Отправить текст из окна «Декодировать».
Из за особенности tkinter он отвечает не list а обычным str и поэтому каждый отступ в окне «Декодировать» важен.
Создание ключа
bit = input()
rand = input()
l = {}
a = list('б','у','к','в','ы')
for x in a:
l[x]=[]
for y in range(rand):
l[x].append(random.getrandbits(bit))
print(l)
Кодировать текст
slo = input()
red =dict(созданный словарь с ключом)
v = []
for x in slo:
if x in red:
v.append(random.choice(red[x]))
print(v)
Декодировать
list_code = input()
red = dict(созданный словарь с ключом)
v = {}
for x in red.items():
for z in list_code:
if z in x[1]:
v[z]=x[0]
zx = []
for x in list_code:
if x in v:
zx.append(v[x])
Комментарии (8)
cher11
20.07.2019 00:53+11) Первое правило криптографии — не изобретай свою криптографию
2)
,global slovo
— так делать тоже, пожалуйста, не надоchek_d()
3) Так шифрование или кодирование?
4)Из за особенности tkinter он отвечает не list а обычным str
эм…
На этом уже можно остановиться. Не надо кидать хелловорды на Хабр, пожалуйста.
ZXZs
20.07.2019 09:37+1Можно было ограничиться созданием репозитория на гитхабе с хорошим readme. Писать отдельный пост на Хабр… странно. Тогда надо было описать свой опыт, грабли и прочее, но в таком простом приложении этих граблей просто быть не может.
iig
20.07.2019 11:02Прочитал, но что за прикладная задача привела к созданию этого лисапеда, так и не понял. В JavaScript нет ни своей криптографии, ни base64 кодирования?
GETnBE
«криптографическое приложение для текста, вдруг будет такая необходимость.» — отличная мысль для документов! :)
mapron
Вы пригласили этого пользователя, дав ему инвайт. Скажите, чем вы руководствовались?)