Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / -2 / 0
Регистрация: 31.03.2016
Сообщений: 155

Мой алгоритм шифрования

08.02.2017, 20:31. Показов 2239. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я студент, готовлюсь к одному конкурсу по программированию. Для него я подготовил программу для android - мастер паролей. Я разработал свой алгоритм шифрования паролей. Это простой шифр Цезаря, но ключ от него извлекается из пароля от хранилища (из его длины), который зашифрован в md5. Идея в простом алгоритме шифрования, ключ от которого никак нельзя получить злоумышленнику, т.к. он не хранится.

Что вы думаете об этом алгоритме? Как его можно обойти и улучшить?
Спасибо за внимание!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2017, 20:31
Ответы с готовыми решениями:

Алгоритм шифрования
Здравствуйте, посоветуйте алгоритм шифрования, которым можно в билдере зашифровать, а на PHP расшифровать. Но чтобы en/de coding происходил...

Алгоритм шифрования
Нужен алгоритм шифрования и дешифрования строки. Два метода. Шифруем строку с помощью пароля. Дешифруем тоже с помощь пароля. public...

Алгоритм шифрования
Всех с прошедшими праздниками! Выручите пожалуйста ребят. 1). В шифруемой фразе определяется количество символов, затем это число ...

17
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.02.2017, 20:37
Я что-то не понял, ты как-то зашифровал пароли в приложении и запер приложение паролем, который является ключом к другим паролям?
0
91 / 86 / 12
Регистрация: 08.08.2013
Сообщений: 667
08.02.2017, 21:55
SP Developer, идея хорошая, но не могли бы Вы показать на пальцах?
Может я бы применил. Сейчас я тоже храню хитро ключ для расшифровки, но не так умело наверное.
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.02.2017, 13:17
Цитата Сообщение от SP Developer Посмотреть сообщение
никак нельзя получить злоумышленнику, т.к. он не хранится.
Правильно ли я понимаю, что ваш пароль не хранится, а вычисляется по какому-то алгоритму? Разве при реинжиниринге кода этот алгоритм нельзя будет восстановить? И провести все точно так же? Естественно имея доступ к файлам устройства? Опять же, всякие шифр Цезаря (и ему подобные) ломаются на раз-два. Суть не в том, насколько надежно вы сохранили ключ, а и насколько надежен алгоритм шифрования.

Чем это лучше шифрования файла (строк и т.д.) по AES-256 и последующего шифрования ключа и его сохранения в какой нибудь файл, либо в новых версиях андроида (с 18) сохранения ключа в KeyStore.

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

Добавлено через 50 минут
SP Developer, посмотрел я ваше приложение PasswordMaster. Как вы можете предлагать своим пользователям пользоваться приложением, если вы их пароли храните в открытом виде???
XML
1
2
3
4
5
<map>
    <string name="main">12345</string>
    <string name="sp1">qwerty123</string>
    <string name="p1">qwerty</string>
</map>
Код это просто нечто. Нечасто я такое говорю, но просто наговнокодили в активити (3600 строк в одном и 1000 в другом). Код не обфусцирован. Качество кода - ниже некуда. Хотя это наверное такой трюк - код я не буду обфусцировать, все равно в нем никто не разберется. И это правда, даже не хочется туда смотреть.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Toast.makeText(getApplicationContext(), "Вы ввели пароль неверно 5 раз. Включена функция "Самоуничтожение"!", 0).show();
            localEditor.putString("sp1", "");
            localEditor.putString("sp2", "");
            localEditor.putString("sp3", "");
            localEditor.putString("sp4", "");
            localEditor.putString("sp5", "");
            localEditor.putString("sp6", "");
            localEditor.putString("sp7", "");
            localEditor.putString("sp8", "");
            localEditor.putString("sp9", "");
            localEditor.putString("sp10", "");
            localEditor.putString("sp11", "");
            localEditor.putString("sp12", "");
            localEditor.putString("p1", "");
            localEditor.putString("p2", "");
            localEditor.putString("p3", "");
            localEditor.putString("p4", "");
            localEditor.putString("p5", "");
            localEditor.putString("p6", "");
            localEditor.putString("p7", "");
            localEditor.putString("p8", "");
            localEditor.putString("p9", "");
            localEditor.putString("p10", "");
            localEditor.putString("p11", "");
            localEditor.putString("p12", "");
WTF???Почему бы это не сделать просто:
Java
1
localEditor.clear().commit();
Все, я ушел.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 13:46
demixdn,

Не по теме:

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


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

Добавлено через 8 минут
А сервер, в свою очередь, при правильной авторизации сам сгенерирует ключ для дешифрации паролей для пользователя.

Добавлено через 3 минуты
Хотя это тоже не гуд, но уже более менее, школьники не взломают за 5 минут.
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.02.2017, 13:48
Изивините, сорвался.

Для примера, есть приложение ВКармане, хранит файлы пользователя на устройстве в зашифрованном виде.
Вот как их sharedPrefs выглядят.
XML
1
2
3
4
5
6
7
8
9
10
11
<map>
    <string name="vkarmane:passwordHash">dGt4tJVSpvEVSCgzGLiwQ/7WBlpf6NLLnSVksicK90E0IlwRjMKFcQ==</string>
    <int name="vkarmane:password_error_count" value="0" />
    <int name="vkarmane:last_document_list_view_type" value="2" />
    <int name="vkarmane:lastShownCountryOrdinal" value="2" />
    <string name="vkarmane:passwordPrompt"></string>
    <boolean name="vkarmane:shown_subscribe_news" value="true" />
    <long name="vkarmane:passwordDelayStartTimestamp" value="1484141451134" />
    <int name="vkarmane:lastVersionCode" value="53" />
    <string name="vkarmane:securitySettings">{&quot;deleteDataAfter10InvalidPasswords&quot;:false,&quot;passwordType&quot;:1,&quot;requestPasswordAfter&quot;:&quot;OneMinute&quot;}</string>
</map>
тоже конечно не образец защиты, но уже лучше.
а вот как должны выглядеть
XML
1
2
3
4
5
6
7
8
<map>
    <string name="TuwbBU0IrAyL9znGBJ87uEi7pW0FwYwX8SZiiKnD2VZ7">
        pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=rroijgeWEGRDFSS/hg
    </string>
    <string name="8lqCQqn73Uo84Rj">k73tlfVNYsPshll19ztma7U">
        pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=:jWm8KzUl0HUHCVBWkn3c2T1WoSAE/g=
    </string>
</map>
причем чем больше строк тем лучше, но чтоб там большинство строк было фейковыми. и тогда взлом усложнится намного. не абсолютно, но время увличиться, что в общем то и нужно.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 13:52
Ну количество строк мало повредит, а вот длина ключа вполне может быть серьёзной проблемой.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.02.2017, 13:52
друг, какой конкурс по программированию?
посмотри правде в глаза и признайся себе - твой код говно и программировать ты не умеешь

пожалуйста, не занимай место на конкурсе, пусть там примет участие кто-то, кто умеет писать
0
09.02.2017, 14:00

Не по теме:

Парень к успеху шёл, а вы)). Ещё неизвестно какие там участники, калькуляторы на паскале или макросы в ворде.

0
0 / -2 / 0
Регистрация: 31.03.2016
Сообщений: 155
09.02.2017, 21:03  [ТС]
На Google play размещена старая версия программы, в новой нужно починить баги и алгоритм шифрования там тоже есть. К вопросам об md5: этот алгоритм шифрования нельзя расшифровать, программа просто считывает пароль от хранилища, шифруется то, что считала, если этот шифр совпадает с сохранением, то пароль правильный, но сохранены шифр md5 в сам пароль нельзя расшифровать.

Добавлено через 7 минут
Не важно, в какой программе используется алгоритм или для какого конкурса, вопрос стоял только о его надёжности и возможных улучшениях.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 21:10
SP Developer, нет такого алгоритма шифрования, который нельзя расшифровать. Ты лучше объясни, пользователь вводит пароль для входа, и что происходит? Как он получает доступ?
0
0 / -2 / 0
Регистрация: 31.03.2016
Сообщений: 155
10.02.2017, 07:34  [ТС]
ExFau$t, если не существует, то что такое, по вашему, md5?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
10.02.2017, 09:18
SP Developer, это хэш функция, после "шифрования" ей нельзя однозначно вернуть исходные данные. Но для текста есть радужные таблицы, которые могут показать варианты исходного текста. Чтобы было безопаснее нужно к паролю добавить соль(дополнительную строку), тогда будет надежнее. Шифры цезаря очень просто расшифровываются без ключа, если им зашифрован логичный текст(реальные слова, предложения). Если им зашифровать пароль вида vGnlt4&-dEbKl, без ключа уже не выйдет. Но можно попробовать вводить все варианты и их будет не много. Лучше не изобретать своих алгоритмов шифрования для реальной защиты данных - не реально придумать что-то серьезное без хороших знаний по теме.
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
10.02.2017, 09:19
Цитата Сообщение от SP Developer Посмотреть сообщение
по вашему, md5?
это алгоритм хеширования
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
10.02.2017, 10:09
SP Developer, md5 уже давно не является хорошим вариантом для шифрования, собственно выше уже пояснили. Даже если ты посолишь md5 и добавишь пару элементов случайности в последовательность, всё равно пароль можно подобрать перебором меньше, чем за минуту на обычном ПК. Тебе пытаются сказать, что твоя разработка не является абсолютно новой и уж точно не:
Цитата Сообщение от SP Developer Посмотреть сообщение
сам пароль нельзя расшифровать
просто, чтобы ты имел в виду это на выступлении.
0
91 / 86 / 12
Регистрация: 08.08.2013
Сообщений: 667
10.02.2017, 15:26
Цитата Сообщение от Паблито Посмотреть сообщение
друг, какой конкурс по программированию?
посмотри правде в глаза и признайся себе - твой код говно и программировать ты не умеешь
пожалуйста, не занимай место на конкурсе, пусть там примет участие кто-то, кто умеет писать
не Уважаемый, почему Вы унижаете человека? Не ВИДЯ код?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.02.2017, 15:49
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
Не ВИДЯ код?
я видел его код, более того, этот код обсуждали в этом разделе и даже какие-то рекомендации выдавали
и меня даже в привате отчитывали за то, что я так грубо высказался в первый раз

и да, ты не видишь сколько моих сообщений удаляют
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
10.02.2017, 16:01
Шифр Цезаря? Вы серьёзно? Не позорьтесь, возьмите нормальный алгоритм)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2017, 16:01
Помогаю со студенческими работами здесь

Алгоритм шифрования
Доброго времени суток. Имеется программа, которая шифрует данные собственным алгоритмом. Есть пример зашифрованных данных (вместе с...

Алгоритм шифрования
Доброго времени суток. Есть исходный код, который расшифровывает строку по ключу (5BCC2D6A95D4DF04A005504E59A9B36E). Возможно ли...

Алгоритм Шифрования
Добрый вечер. У меня такой к вам вопрос, Самый безопасный шифральшик паролей. Чтобы безопасно мог шифровать пароли, безопасная...

Алгоритм шифрования DES
Требуется написать программу реализующую симметричный алгоритм шифрования DES. В Инете много облазил сайтов, но так и не понял, какой тип...

Алгоритм шифрования RSA
х*17(mod 84)=1 найти х Написать на с++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru