Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.05.2011, 15:10
varvar123 varvar123 вне форума
Прохожий
 
Регистрация: 26.05.2011
Сообщения: 3
Репутация: 10
По умолчанию Шифрование паролей

Подскажите, пожалуйста. Есть главная форма с Edit1 логин и Edit2 пароль. Я создала пользователей с помощью WebUserList: admin, student и prepod. Для dmin существует Form2, для prepod и student Form3.Так же есть генератор паролей (на Form2). Необходимо сделать так, чтобы при нажатии кнопки "Генерировать пароль" полученное значение заносилось в WebUserList поле Password и хранилось в зашифрованном виде.
Ответить с цитированием
  #2  
Старый 28.05.2011, 16:46
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Используй хеш.
Ответить с цитированием
  #3  
Старый 28.05.2011, 18:26
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию Простая процедура шифрования

Здесь одно из великого множества возможных решений.
Процедуры используют для шифрования метод побитового сложения по модулю 2 с некоторым кодовым словом (здесь это C[0..63])
Метод широко извкестен, его криптостойкость сильно зависит от длины кодового слова. Эту длину следует выбирать большей чем длина самого сообщения.
Метод обратим. Дешифровка осуществляется повторным применением этой же функции к зашифрованному сообщению.

Код:
const
c:array[0..63] of byte=(                 //шифр
$7A,$FD,$24,$34,$12,$6B,$1E,$F0,$4C,$13,$EC,$CC,$63,$5A,$59,$E3,
$13,$87,$A7,$62,$B8,$96,$84,$3C,$4A,$5D,$B0,$E6,$86,$78,$9A,$3C,
$C9,$C6,$BD,$E3,$6A,$6B,$91,$C7,$AB,$94,$4D,$94,$76,$76,$E3,$3D,
$88,$4B,$DA,$FF,$CD,$48,$F9,$60,$F4,$BB,$EB,$28,$93,$E1,$53,$4E
);



{--------шифровка-дешифровка--------}
function CodeStr(s:string):string;
var
n:integer;
begin
for n:=1 to Length(s) do
    s[n]:=char(Ord(s[n]) XOR c[n MOD SizeOf(c)]);
CodeStr:=s;
end;

{--------шифровка-дешифровка--------}
procedure CodeStr2(var Pw;Leng:integer);
var
n:integer;
P:^byte;
begin
P:=@Pw;
for n:=0 to Leng-1 do
    begin
    P^:=P^ XOR c[n MOD SizeOf(c)];
    inc(P);
    end;
end;

Последний раз редактировалось lmikle, 28.05.2011 в 20:28.
Ответить с цитированием
  #4  
Старый 28.05.2011, 20:46
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от chainik
.....
Метод широко извкестен, его криптостойкость сильно зависит от длины кодового слова. Эту длину следует выбирать большей чем длина самого сообщения.
....
P^:=P^ XOR c[n MOD SizeOf(c)];
.....

И получаем крптостойкость равную 0.

Еще раз повторюсь: используй хеш (хотя бы MD5 и/или SHA1...) и будет тебе счастье.
Ответить с цитированием
  #5  
Старый 30.05.2011, 12:41
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Как сказал товарищ Konrad - необходимо использовать хэш. Хэш - необратим и поэтому вычислить пароль возможно только при помощи брутфорса. Шифровать пароли равносильно держать их в открытом виде ибо ключ есть явно в теле программы и вычислить его не составит особого труда.
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter