:: Архив конференции по VFP до 2005 года
Re: Шифрование паролей
asp

Сообщений: 36
Откуда: Novosibirsk
Дата регистрации: 03.06.2004
"свое" - я имел в виду по отношению к Фоксу, типа "свое" = "встроенное", "стандартное"




------------------
Without C we would have 'obol', 'basi', and 'pasal'
Ratings: 0 negative/0 positive
Re: Шифрование паролей
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
2 Равиль:

"Дехеширование" - это что-то новое, Равиль! Дело в том, что хэширование по-определению подразумевает одностороннее преобразование, на выходе которого получается сообщение фиксированной (намного меньшей) длины. Т.е. хэш - это как-бы контрольная сумма, свертка, по нему нельзя восстановить исходное значение. Самые известные алгоритмы SHA, MD5, наш ГОСТ не помню уже какой.

Если придерживаться общепринятой терминологии, то в твоих примерах мы имеем кодирование и декодирование (если бы использовался какой-то внешний ключ, говорили бы о шифровании и дешифровании).
Ratings: 0 negative/0 positive
Re: Шифрование паролей
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
Цитата:
а как пользователю изменить свой пароль

Так понятно, что при таком варианте пароли пользователям устанавливает/меняет админ. Для небольших систем вполне приемлемо. А если делается как положено, чтобы программа сама заставляла пользователя менять свой пароль (администратор может только сбрасывать пароль пользователейи , само собой, ничьих паролей знать не может), то тогда и защиту нужно делать соответствующую.
Ratings: 0 negative/0 positive
Re: Шифрование паролей (полу-оффтопик)
asp

Сообщений: 36
Откуда: Novosibirsk
Дата регистрации: 03.06.2004
Ага, у нас сейчас в универе сделано: для выхода в инет есть квоты студентам, все учитывается, считается, у каждого есть свой логин/пароль. Есть менеджеры групп и администратор, которые могут enable/disable учетную запись, reset счетчик квоты, выделить персональную квоту.... Короче, это не реклама фишка: каждый семестр все студенческие логины дисаблятся для того, чтобы те, кого отчислили, не имели "халявы". Для воссоздания старосты групп приносят списки "выживших"... Далее - все, ради чего пишу: активируются учетные записи, генерятся новые пароли и распечатываются в виде таблички на листе потом этот листок выдается старосте - а там уже что хотят с ним, то и делают. В основном режут ножницами таблицу на строки Некоторые даже после этого оставляют сгенеренный пароль. Был случай, как ко мне подошел студент в начале следующего семестра с этой отрезанной ему старостой полоской бумажки и говорит: "вот мой пароль, а он не работает" И для чего, спрашивается, делать такие системы авторизации и прочего, когда пользователи сами не стремятся сохранить свой passwd Недавно педерача была по телевизору - самые "добродушные" - англичане - готовы сказать любой свой пароль за плитку шоколада (большинство), россияне тоже недалеко от начала.... Наверное, за "стаканчик беленькой"




------------------
Without C we would have 'obol', 'basi', and 'pasal'
Ratings: 0 negative/0 positive
Re: Шифрование паролей
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
А в чем проблема, что клиенты на Win95? У меня тоже 90% клиентов на Win95OSR2, если помнит кто такую. Все дело только в наличии контроллера домена и настройках клиентской ОС
Ratings: 0 negative/0 positive
Re: Шифрование паролей
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Цитата:
а как пользователю изменить свой пароль
Обратится к администратору А вообще если позволяют средства и опыт, то можно просто вынести процедуры аутентификации на "средний слой" трёхзвенки, или на нижний слой "чисто фоксового клиент-сервера" - т.е. доступ там идёт исключительно через COM+/WebService - а значит юзер не видит и тем более не может получить непосредственный доступ к таблицам (даже если это простые фоксовые dbf-ы), а только видит компоненту (COM-сервер) среднего слоя и может только её методы дёргать Т.к. разделение в случае COM+/WebService очень большое - компоненты (средний слой и клиентская прога) работают в разных процессах - то можно средствами NTFS настроить доступ так, что юзер никогда и не увидит папки с dbf-ами
Плюс такой системы в том, что её можно сделать максимально простой и быстрой (сохранив мощь фокса) в отличие от супер-навороченных но достаточно медленных MS SQL Server/Oracle и т.п. Да и по деньгам будет явный выигрыш Конечно если не ждать и надеяться что команда MySQL таки доведёт эту СУБД до приемлемого уровня функциональности (ну там триггера, хранимые процедуры, функции валидации и т.п.)




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Шифрование паролей (полу-оффтопик)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Система чисто самописная, или какую InternetCafe-like приобрели? И ты так и не сказал какой тип хешей тебя интересует или это "всёравно"
Насчёт взлома MD5 - это врядли - хеши MD4/MD5 не ломаются - можно лишь подобрать ключевое слово дающее тот-же хеш что и начальный пароль - учитывая размер хеша для MD5 (16 байт=128бит) то в общем случае задача подбора займёт неприемлемо большое время. Даже взлом NT пароля (там пользуется MD4 AFAIK) при вдвое меньшем размере хеша занимает массу времени (конечно если юзер "параноик", и не использует в качестве пароля своё имя, или слово из словаря, не стесняется юзать и буквы и цифры и спецсимволы для пароля).
Т.е. IMHO MD5 на ближайшую перспективу вполне надёжен (т.е. заведомо надёжнее самого юзера )
CRC32 (фоксовые SYS(2007)) менее надёжен (размер хеша уж больно мал), CRC16 вообще только от самых ненастойчивых хакеров поможет - всего то 65535 вариантов




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Шифрование паролей
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А вот еще один алгоритм который основан на особенности работы фоксовского генератора случайных чисел. Каждое новое шифрование одной и той же последовательности символов дает новую шифрованную строку

#define PASS_LEN 10
Procedure Encrypt( m.Text)
Local s,e,x,i,r
m.Text=Padr(m.Text,PASS_LEN)
s=""
r=Val(Sys(2007,Sys(2015)))
Rand(r)
For i=1 to PASS_LEN
s=s+Right(Transform(Bitxor(Asc(Substr(m.Text,i,1)),Int(Rand()*256)),'@0'),2)
Next
Return Lower(s+Right(Transform(r,'@0'),4))
Procedure Decrypt(m.Text)
Local s,e,x,i,r
Rand(Val('0x'+Right(m.Text,4)))
m.Text=Padr(m.Text,PASS_LEN*2)
s=""
For i=1 To PASS_LEN
s=s+Chr(Bitxor(Val('0x'+Substr(m.Text,(i-1)*2+1,2)),Int(Rand()*256)))
Next
Return Alltrim(s)
Ratings: 0 negative/0 positive
Re: Шифрование паролей
Равиль

Сообщений: 6554
Откуда: Уфа
Дата регистрации: 01.08.2003
piva, погонял и мне очень понравилось, можно юзать в корыстных целях ?
Local m.i, m.h
Clear
Dimension aPass(10)
For m.i=1 To 10
m.h=Encrypt("Пароль")
aPASS(m.i)=m.h
? m.h
Next
For m.i=1 To 10
m.h=Decrypt(aPASS(m.i))
? m.h
Next




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: Шифрование паролей
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
2Равиль

Можно - и не забудь ссылку на авторские права
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 7 (Гостей: 7)

© 2000-2024 Fox Club 
Яндекс.Метрика