Форум: "Прочее";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];
ВнизКак проверить алгоритм Найти похожие ветки
← →
Kolan © (2010-07-28 23:19) [0]Здравствуйте!
Я разрабатываю один не сложный, но запутанный алгоритм авторизации на сайте. Там несколько куки, всякие коды на почту могут приходит и т. д. Разрабатываю в виде блок схемы и код написать не могу.
Вопрос: как можно полностью проверить алгоритм? То есть я хочу быть на 100% уверенным, что в алгоритме нет ошибки. Может есть какие-нибудь методы?
← →
Юрий Зотов © (2010-07-29 00:01) [1]
> Kolan © (28.07.10 23:19)
Насколько помню, то ли Дейкстра, то ли другой классик программизьма лет эдак 60-70 назад математически строго доказал следующую теорему: "Не существует проверочного алгоритма, гарантирующего правильность другого алгоритма".
В чем, собственно, и есть вся прелесть этой профессии. Это уже от себя.
← →
Kolan © (2010-07-29 00:39) [2]Хотя бы приблизиться.
--
Прочесть про доказательство классика было бы интересно.
← →
Германн © (2010-07-29 01:12) [3]
> Хотя бы приблизиться.
>
Тогда надо написать "интерпретатор блок-схем". И не пожалеть времени на тщательную отладку сего инструмента!
)))
← →
antonn © (2010-07-29 01:57) [4]выложить блоксхему на сайт веб-программистов
← →
Германн © (2010-07-29 02:05) [5]
> antonn © (29.07.10 01:57) [4]
>
> выложить блоксхему на сайт веб-программистов
>
А на том сайте есть конференция "Начинающим"?
)))
← →
Германн © (2010-07-29 02:17) [6]
> Разрабатываю в виде блок схемы и код написать не могу.
>
Выкладывай блок-схему сюда. Наша "помойка" славится во "всемирной помойке" именно тем, что тут всегда можно рассчитывать на то, что кто-нибудь найдет время, возможности, знания, опыт и т.д., чтобы что-то подсказать.
← →
partizan (2010-07-29 05:47) [7]А зачем "не сложный, но запутанный алгоритм авторизации на сайте", если есть не сложный и не запутанный:
1. Спросил логин/пароль
2. Проверил
3. Если Правильно - авторизирован, иначе - сообщение об ошибке
← →
И. Павел © (2010-07-29 08:37) [8]Основной критерий истинности - практика. Так что придется все-таки реализовать :)
← →
Petr V. Abramov © (2010-07-29 09:34) [9]
> Kolan © (29.07.10 00:39) [2]
см. теорема Райса
← →
Kolan © (2010-07-29 09:39) [10]Алгоритм секретный, поэтому выложить не могу. Павел, благодарю за ссылку.
← →
Kerk © (2010-07-29 09:40) [11]Может, юнит-тесты тут в тему будут?
← →
И. Павел © (2010-07-29 09:44) [12]> Алгоритм секретный
При разработке таких вещей нужно всегда считать, что алгоритм не секретный, а доступен взломщику. А секретной должна быть информация, необходимая для авторизации.
PS: не того поблагодарили. Ссылку вам написал Petr V. Abramov ©.
← →
Kolan © (2010-07-29 10:14) [13]Алгоритм секретный с коммерческой точки зрения. Да, сорри, Пётр.
← →
Омлет © (2010-07-29 10:18) [14]Проверить можно на бумажке. Расписать все возможные варианты развития событий.
← →
12 © (2010-07-29 10:32) [15]а чего хоть делает, этот секретный насмерть алгоритм?
← →
Kolan © (2010-07-29 11:33) [16]Может, юнит-тесты тут в тему будут?
Kerk, а как их без кода делать?
← →
Kerk © (2010-07-29 11:36) [17]Никак
← →
Омлет © (2010-07-29 12:37) [18]Тесты можно написать до написания кода.
← →
Думкин © (2010-07-29 12:38) [19]
> Омлет © (29.07.10 12:37) [18]
>
> Тесты можно написать до написания кода.
А в ряде религий - только так и нужно.
← →
Kerk © (2010-07-29 12:47) [20]
> Омлет © (29.07.10 12:37) [18]
>
> Тесты можно написать до написания кода.
Но после написания тестов все равно придется писать код :)
← →
Медвежонок Пятачок © (2010-07-29 13:55) [21]тесты тестят реализацию алгоритмов.
тесты не могут тестить сами алгоритмы.
ибо это всего лишь математическая абстракция.
например алгоритм может быть уязвим, а его практическая реализация - нет.
и наоборот тоже может быть.
← →
Медвежонок Пятачок © (2010-07-29 13:58) [22]отсюда кстати следует, что протестированный алгоритм, давший положительный ответ (что он неуязвимый) еще ничего не гарантирует.
это всего лишь знак, что можно приступать к реализации.
после чего тестить уже реализацию, так как она может быть уязвима.
← →
Омлет © (2010-07-29 14:23) [23]Для проектирования можно использовать UML, чтобы проще был переход к реализации объектной модели.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c