![]() |
|
#1
|
|||
|
|||
![]() привет всем! как сделать чтоб пароль можно было изменить (как на сайтах или в windows и т.д) т.е чтоб изменить пароль надо ввести старый
|
#2
|
||||
|
||||
![]() Я в своей одной проге хранил хеш пароля.
Тогда вводишь старый, он хешируется, сравнивается с тем, что есть, и если совпадает - то пишем новый. Для хеша можно юзать стандартные вещи (MD5 например), а можно замутить какой-нить бред из серии Код:
hash:=byte(s[1])^5+byte(s[2])^3-byte(s[3])^2-byte(s[4])^5... "Чем бредовее будет ваш алгоритм, тем меньше шансов подобрать пароль и тем меньше будет в нем коллизий..." jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 13.12.2010 в 18:41. |
#3
|
||||
|
||||
![]() Цитата:
Какой вопрос, такой и ответ. Цитата:
Меня греют ваши плюсы к моей репутации... Последний раз редактировалось BoRoV, 13.12.2010 в 18:48. |
#4
|
||||
|
||||
![]() Понятное дело. Яркий тому пример:
Код:
hash := a[1]^2+a[2]+a[3]^2+a[4]+... Однако если не нужна ХОРОШАЯ защита, и лень думать, то можно и че-нить простенькое написать. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() Еще одна простецкая система:
"Товарищи математики доказали теорему, что простейший шифр цезаря не вскрывается никак, кроме подбора." Берем, прошиваем в программу константу типа такой Код:
const pass='18 yn*&TYN(*@&M w42-3-3vl;mcxsrer'gk":%"OJEIJ'; Опять же, элементарно вскрывается дизассемблированием или анализом строки, но от глаз юзверей этого за глаза и за уши) jmp $ ; Happy End! The Cake Is A Lie. |
#6
|
||||
|
||||
![]() Насколько помню со студенческих год, то обратить цезаря можно. Могу ошибаться.
Дай его рализацию, если не затруднит. Меня греют ваши плюсы к моей репутации... |
#7
|
||||
|
||||
![]() Код:
j:=1; for i:=1 to length(s) do begin s[i]:=s[i] xor pass[j]; // в стандартном алгоритме вместо XOR'а стоит +, но с XOR прикольнее inc(j); if j>length(pass) then j:=1; end; jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
||||
|
||||
![]() Цитата:
Какие еще математики?)))) Читал и просто ужасался... Ксор(при длине ключа < длине сообщения), ш.Цезаря, Виженера и т.д. и т.п ломаются за раз... Цитата:
Показываю уличную магию: Допустим пароль1=уфацкпукп, после ксора получаем x1=.......; пароль2=укеауекун, после ксора получаем x2=.......; пароль3=акпцеререр, после ксора получаем x3=.......; Допустим кому-то дуалось найти пасс1 ( скажем твой старый пасс годичной давности), тогда пароль1 xor x1 = гамма а далее х2 xor гамма = пароль2, х3 xor гамма = пароль3, и т.д. Вся мего система взломана. Если в паролях есть закономерности, все ще легче) Последний раз редактировалось Konrad, 13.12.2010 в 19:27. |
#9
|
||||
|
||||
![]() Если один пароль был 12345. Я зашифровал, 6789012, получил абвгдеё.
Если я нашел пароль, то да, я расшифрую, и получу резултьтат (на то оно и шифрование с открытым ключем). Но когда я сделаю новый пароль и новый текст полученное мне ничем не поможет. Абсолютно. Если "гамма" одна и та же - то да. А если нет?.. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 13.12.2010 в 19:38. |
#10
|
||||
|
||||
![]() Да, оно у меня есть. Просто файлы лаб по этому предмету назывались как shifr_1, shifr_2, etc. И вот цезаря был в первой лабе. Самое простое, это не защита, ломается как два пальца. А вот остальные шифры поинтереснее, но я уже не помню кто из кто, есть только порядочные номера.
Меня греют ваши плюсы к моей репутации... |
#11
|
||||
|
||||
![]() Цитата:
Снова уличная магия)))) Шифр цезаря Ci=Pi+k, где к пароль. Таким образом допустим я нашел шифртекст где зашифрован пароль этим шифров. допустим такой - erwteryteyt; тогда мне достаточно перебрать всего 256 вариатотов. for i=1 to 255 pacc[i]=(erwteryteyt)xor(i) все....)))) Даже если пользователь будет использовать пароль длиной в 11 символов, количество возможных паролей для анг алфавита будет 26^11 = 3670344486987776, а тут 256))) Чувстувуешь разницу? Тоесть пользователь будет уверен что 3670344486987776 паролей перебрать нереально, а на самом деле их то и перебирать никто не будет))))) Цитата:
Кстати бал такой не признанный гений, который так и делал. Набери в гугле "шифрование андрейчиков". Похлеще Дениса Попова))) Последний раз редактировалось Konrad, 13.12.2010 в 19:47. |
#12
|
||||
|
||||
![]() для одного символа 256. а если два, то 65536. Если три, то 65536*256.
Если же длина пароля равна длине шифруемого, то при подборе ты из слова "стол" получишь ВСЕ возможные комбинации 4х букв, и таким образом не поймешь никогда, что же там было. Я все никак не могу понять. Вот я взял строку 1234567890. Вот я взял пароль qwertyuiop. зашифровал одно другим: первый символ первым, второй вторым, третий третим и т.д. Получил строку. Как её расшифровать не зная пароля и не перебирая все пароли? jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 13.12.2010 в 19:51. |
#13
|
||||
|
||||
![]() Блин... госпади, чё так сложно? salt + md5 + salt + sha1 + base64. И всё
![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#14
|
||||
|
||||
![]() Цитата:
И?) Для каждого нового сообщения мне нужен будет новый ключ... Где хранить его будем?) Это шифр одноразового блокнота, или модификация шифра Вернама. Да, Шенон доказал его невзламность, как и не практичность. Его используют, но в таких строгих условиях, что на домашнем компе вы их никогда не достигнете. |
#15
|
||||
|
||||
![]() DJ PhoeniX +100001.
В даном случае и МД5 будет достаточно. |