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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.12.2009, 18:43
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию md5 - как и с чем кушать?

Здравствуйте уважаемые программеры. Я столкнулся с такой проблеммой. Чисто для себя хочу написать харнитель паролей.
Принцып будет такой: Есть текстовый файл (или файл с любым другим типом, это не важно) в котором хранятся множество паролей в зашифрованом виде, есть программа дешифратор принцып её роботы такой:
Я выбираю к какому сайту мне нужен пароль она его берёт из текстового файла в зашифрованом виде, дешифрует его и перемещает в буфер, после чего я его вставляю в поле ввода пароля.
Подскажите пожалуйста следующее:
1: Самый оптимальный способ шифрования.
2: Как мне лучше всего связать программу с файлом (ну чтобы если например ктото мой файл скопирует (посути ведь md5 копии будет отличатся от оригинала?) то программа откажется с этим файлом роботать)???
3: Немогу придумать каким способом лучше всего добавлять (убирать) пароли с этого файла? Подскажите самый безопасный способ ввода =)
Ну например редактировать файл на мобиле (если он текстовый) затем после запуска программы этот пароль мгновенно шифруется ну или как я просто не придумаю как это осушетвить.
Возможности того человека что будет взламывать мой комп:
Просмотр нажатых клавиш, просмотр монитора, возможно просмотр буфера, может свободно шастать по моём компе (по папкам).
Ответить с цитированием
  #2  
Старый 27.12.2009, 21:14
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Посмотри, может подойдет.

{
http://passwordsafe.sourceforge.net/ru_index.html

Password Safe
Крохотная, но исключительно полезная программа, менеджер паролей, позволяющий хранить множество разнообразных реквизитов доступа в одной базе данных, защищённой одним мастер-паролем и 160-битовым алгоритмом Blowfish. Изначально автором являлась компания Counterpane Labs и лично Брюс Шнайер. Сегодня — свободный проект open source.
}
Ответить с цитированием
  #3  
Старый 28.12.2009, 00:12
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Сам юзал, удобная штука. Настоятельно рекомендую.

а т.к. открыт код, можешь внести и свою лепту)
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #4  
Старый 28.12.2009, 15:46
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию ОЙ СПАСИБО ВАМ

Огромнейшое спасибо!....
А если чесно то нифига я вам не благодарен... я тему открыл не для того чтобы мне розсказывали о программах, я хочу помощи, я сам хочу творить а не юзать чужое.
Ответить с цитированием
  #5  
Старый 28.12.2009, 17:46
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Не вопрос, можно и помочь.

Цитата:
Сообщение от GraffyM
1: Самый оптимальный способ шифрования.
Что, в твоем понимании, значит оптимальный?
Ответить с цитированием
  #6  
Старый 29.12.2009, 09:41
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Понятно Видно такая самописная программа автору нужна так же как и мне
Ответить с цитированием
  #7  
Старый 29.12.2009, 12:31
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

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

слушай, творец, давай вопросы по порядку. А то как ты наспрашивал, так голова кругом.

самый оптимальный метод шифрования, это ты про что? Самый надежный, или какой ещё?

как сделать так, чтобы если файл скопируешь, нельзя было с ним работать? Да шифруй этот файл. Без пароля никто не сможет его просмотреть.

как хранить пароли.. Ну тут куча способов. Храни к примеру в зашифрованном ини файле. При запуске программы дешифруй его, при закрытии наоборот. Чтение-запись в ини файл - смотри в справке.
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #8  
Старый 29.12.2009, 13:49
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию

Надёжный, не требующий мощного компа для роботы, роботу которого я смогу понять и изменить как хочу но чтобы при этом розшифровать его было трудно.
Ответить с цитированием
  #9  
Старый 29.12.2009, 13:58
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от GraffyM
Надёжный, не требующий мощного компа для роботы,
По это описание подходит любой алгоритм.

Цитата:
Сообщение от GraffyM
роботу которого я смогу понять
Трудно угадать. Я не знаю твоего уровня подготовки.
Посмотри на пример реализации RC4.

Цитата:
Сообщение от GraffyM
и изменить как хочу но чтобы при этом розшифровать его было трудно.
Изменить и при этом оставить стойким - это трудная задача.
Некоторые криптографы модифицировали извесные алгоритмы. а потом оказывалось. что модификация деает алгоритм еще хуже.

Последний раз редактировалось Konrad, 29.12.2009 в 14:10.
Ответить с цитированием
  #10  
Старый 29.12.2009, 14:10
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Цитата:
Сообщение от GraffyM
Надёжный, не требующий мощного компа для роботы, роботу которого я смогу понять и изменить как хочу но чтобы при этом розшифровать его было трудно.

Трудно кому? Твоей младшей сестре, или человеку со спец образованием?

Предлагаю Ксор ! Шутка. Ну возьми AES, есть куча готовых реализаций.. Резберёшься врядли, но он достаточно стойкий.

И вообще - мой тебе совет, прежде чем шифровать, реализуй сначала остальной предполагаемый функционал, программы.
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #11  
Старый 29.12.2009, 21:47
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию

Всем спасибо за советы. Я так понял что это для меня сложно. Но у меня возникли новые вопросы:
1: Как очистить экран консольного приложения?
2: Почему мне пишет ошибку и как с ней боротся?
Текст ошибки:

project 1.exe
3: Так как я хочу стать программистом стоит ли мне уже начинать C++ ?
Посоветуйте учебники для тех кто чуть-чуть шарит по паскалю.
И да... подскажите пожалуйста почему когда я сделал проверку пароля то если я ввожу полу правельный(подбирая по числам) тоесть первый этап проверки пароль проходит а на втором зацыклюется не пишет мол пассворд ис инкоррект??? Розберите и подскажите где я ошибся? А то я не могу найти!!! (П-С вылаживаю полный исходный код. Какой он ни есть.)
Код:
program test2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
const

  fileName:string=('D:\noaccess.txt');
var
 command2, command1, pass1, sDv: string;
  dvchp, chb, nep1, dlna, Sbch, iMod, iDch, iDchr :integer;
  f1,f2:TextFile;
  bukv:char;
label
  konec,kommandes,exits;
BEGIN
 IF FileExists(fileName)
 THEN
  BEgiN
   writeln('Enter password please.');
   readln(pass1);
   dlna:=length(pass1);
   Sbch:=0;
    for nep1:=1 to dlna do
     begin
      bukv:=pass1[nep1];
      chb:=Ord(bukv);
      Sbch:=Sbch+chb;
     end;
   iDch:=Sbch;
    while iDch >= 2 do
     begin
      iMod := iDch mod 2;
      iDch := iDch div 2;
      sDv := IntToStr(iMod) + sDv;
     end;
   sDv := inttostr(iDch) + sDv; 
   dvchp:=111000000;
    if
     strtoint(sDv)=dvchp
    then
     if pass1[5]=('u')
     then
     begin  
      AssignFile(f1,'D:\noaccess.txt');
      Reset(f1);
      kommandes:Writeln('Enter command');
      Writeln('Enter "help" to open list of possible command.');
      writeln('Enter "end" to exit of console.');
      readln(command1);
       if
        command1=('end')
       then
        begin
         writeln('Are you sure?');
         goto exits;
        end;
      Writeln('You entered ',command1,' confirm?');
      exits:readln(command2);
       if
        command2=('yes')
       then
        begin
         if
          command1=('end')
         then
          goto konec;
        end
       else goto kommandes;
      Rewrite(f1);
      closefile(f1);
     end
    else
   else
     begin
     writeln('Password not correct.');
     end;
  End
 ElsE
 writeln('File Not Found');
 konec:readln;
END.
Пароль: test
Ну как вам прога? Ещё надо реализовать info, дешифровку паролей если вытягивать из тхт файла и шифровку если их туда запихать. Ах да.. И ещё мне интересно.
4. Подскажите как сделать так чтобы чтото (какоето значение, текст, число) копировалось в буфер.

Последний раз редактировалось GraffyM, 29.12.2009 в 21:56.
Ответить с цитированием
  #12  
Старый 29.12.2009, 22:22
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от GraffyM
И да... подскажите пожалуйста почему когда я сделал проверку пароля то если я ввожу полу правельный(подбирая по числам) тоесть первый этап проверки пароль проходит а на втором зацыклюется не пишет мол пассворд ис инкоррект??? Розберите и подскажите где я ошибся? А то я не могу найти!!!
Код:
   writeln('Enter password please.');
   readln(pass1);
   dlna:=length(pass1);
   Sbch:=0;
    for nep1:=1 to dlna do
     begin
      bukv:=pass1[nep1];
      chb:=Ord(bukv);
      Sbch:=Sbch+chb;
     end;
   iDch:=Sbch;
    while iDch >= 2 do
     begin
      iMod := iDch mod 2;
      iDch := iDch div 2;
      sDv := IntToStr(iMod) + sDv;
     end;
   sDv := inttostr(iDch) + sDv; 
   dvchp:=111000000;
    if
     strtoint(sDv)=dvchp
    then
     if pass1[5]=('u')
     then
     begin  
     
Ну как вам прога?

Чесно?
Прога УЖЕСТЬ.

Зачем счить сумму кодов символов пароля?)
А эта проверка if pass1[5]=('u') к чему?)

Тут 3 варианта или использовать хеш или шифровать пароль, или то и другое для аццкой стойкости. Но коды букв к чему?)

П.С.: какой твой возраст? (если не секрет, просто интересно).
Ответить с цитированием
  #13  
Старый 29.12.2009, 22:26
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию

Если честно мне 15. Так как я программить начал недавно. Это моя первая прога. В школе мы никогда не учили ничего я самоучка.
И.. эм... там надо заменить на if pass1[4]=('t')
Ответить с цитированием
  #14  
Старый 29.12.2009, 22:28
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Как говорил дедушка Ленин: учиться, учиться и еще раз учиться.
А именно: для начала читать.

По криптографии:
Начни со "Взломщиков кодов" Кана, потом "Криптография от папируса до наших дней", ну а дальше спросишь на форуме.

По программированию: полно книг. В этом разделе даже тема есть такая с литературой.
Ответить с цитированием
  #15  
Старый 29.12.2009, 22:33
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

П.С.: вон Ferra группу программистов набирает, если хоч - записывайся.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter