Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: CL | DM;

Вниз

Как расчитать MD5 - хеш самого себя (Приложения)   Найти похожие ветки 

 
Ega23 ©   (2008-07-23 10:53) [40]


> Как подделывают CRC16/32


А ты его через RSA закрой, а юзеру - только публичный ключ выдавай.  :)


 
McSimm ©   (2008-07-23 11:23) [41]


> где Вы его собрались хранить?

мне тоже любопытно


 
Ega23 ©   (2008-07-23 11:24) [42]


> > где Вы его собрались хранить?
>
> мне тоже любопытно
>


В ini-файле, где же ещё...   :)))


 
Anatoly Podgoretsky ©   (2008-07-23 11:40) [43]

> User  (23.07.2008 10:46:39)  [39]

Страшилки оставь в покое, зачем пытаться ломать CRC когда проще откусить защиту. Кроме того кроме подделки CRC придется еще и длину подделывать, да и мало ли что еще. И я на 100% уверен, что поделка автора никому не интересна, кроме самого автора.
А откусывать защиту, что для CRC8, что MD5 одинакова. Был бы интерес.


 
User   (2008-07-23 12:08) [44]

> Кроме того кроме подделки CRC придется еще и длину подделывать
- не обязательно, тк в файле (исполняемом) имеется уйма места, куда никакие указатели не ссылаются, к тому же имеется выравнивание секций и т.п. (для любителе ужастиков - данные материалы освещает http://www.wasm.ru и др. аналогичные), нолики заменяются на символы = CRC сошлась ...
> А откусывать защиту, что для CRC8, что MD5 одинакова - если CRC8 или MD5 хранить отдельно от файла - нечего будет кусать: проверил контрольную сумму, сравнил с оригиналом КС - делаешь выводы об идентичности ...

ЗЫ: полемика вышла за рамки постановки вопроса ;-)


 
Dennis I. Komarov ©   (2008-07-23 12:16) [45]

> [44] User   (23.07.08 12:08)

Это вопрос вышел...


 
Дима   (2008-07-23 18:09) [46]


> Я скажу как вычислить md5 хешь файла, но сперва скажите
> где Вы его собрались хранить?


В ini-файле и храню и CRC32 тоже + (есть кое какие наметки) + соответствующая запись (Зашифрованная и в ini тоже) в Лог-файле! ИМХО- так соблаговолила моя душа :) Это все полемика, важна реализация не кривая а Корректная и правильная!


> Anatoly Podgoretsky ©   (23.07.08 11:40) [43]
> И я на 100% уверен, что поделка автора никому не интересна,
>  кроме самого автора.


Огульно! 99% нет не нужна не кому, но всеже 1% за мной и пользователями а это хоть какой но аргумент!


 
Медвежонок Пятачок ©   (2008-07-23 18:13) [47]

импортировать 6 функций из advapi32 и хеш у тебя в кармане


 
Дима   (2008-07-23 18:16) [48]


> Медвежонок Пятачок ©   (23.07.08 18:13) [47]


А по подробнее?


 
Медвежонок Пятачок ©   (2008-07-23 18:20) [49]

А по подробнее?
А поможет?

function CryptAcquireContext     ;external ADVAPI32 name "CryptAcquireContextA"
function CryptReleaseContext     ;external ADVAPI32 name "CryptReleaseContext";
function CryptGetHashParam       ;external ADVAPI32 name "CryptGetHashParam";
function CryptCreateHash         ;external ADVAPI32 name "CryptCreateHash";
function CryptHashData           ;external ADVAPI32 name "CryptHashData";
function CryptDestroyHash        ;external ADVAPI32 name "CryptDestroyHash";


 
Дима   (2008-07-23 18:20) [50]


> User   (23.07.08 10:15) [31]


Ее родную и применил. Не ту что в горячке привел в начальных постах!


 
Дима   (2008-07-23 18:31) [51]


> Медвежонок Пятачок ©   (23.07.08 18:20) [49]
>
> А поможет?


А по чему бы и нет? Что, все так безнадежно?
Я думаю Гуру ты или "Чайнег" - а тягу к самообразованию, еще не кто не отменял!

+ Спросить всегда не зазорно было, плохо тупить в гордом одиночестве и прожить пусто но как Гуру-одиночка. ИМХО!


 
Медвежонок Пятачок ©   (2008-07-23 18:42) [52]

Вот пример использования.
Только подставить id нужного алгоритма.

function CalculateHash(const AFileName : string; AlgID : Cardinal; var AData : Pointer; var ADataSize : Cardinal) : boolean;
var pBuff : Pointer; aBuffLen,ReadCount : Cardinal; fStream : TFileStream;
   hProv : HCRYPTPROV; hHash : HCRYPTHASH;
begin
Result := False; pBuff := nil; fStream := nil;
if FileExists(AFileName) then
 begin
  if CryptAcquireContext(@hProv,nil,nil,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT) then
   begin
    if CryptCreateHash(hProv,AlgID,0,0,@hHash) then
     try
      fStream := TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone);
      if fStream.Size >= BUFF_SIZE then aBuffLen := BUFF_SIZE else aBuffLen := fStream.Size;
      GetMem(pBuff,aBuffLen);
      repeat
       ReadCount := Min(aBuffLen,fStream.Size - fStream.Position);
       if ReadCount > 0 then
        begin
         fStream.ReadBuffer(pBuff^,ReadCount);
         Result := CryptHashData(hHash,pBuff,ReadCount,0);
         if not Result then Break;
        end
       else
        Break;
      until ReadCount <= 0;
      if Result then
       begin
        if CryptGetHashParam(hHash,HP_HASHVAL,nil,@ADataSize,0) then
         begin
          GetMem(AData,ADataSize);
          Result := CryptGetHashParam(hHash,HP_HASHVAL,AData,@ADataSize,0);
         end;
       end;
     finally
      if Assigned(pBuff) then FreeMem(pBuff,aBuffLen);
      CryptDestroyHash(hHash);
      CryptReleaseContext(hProv,0);
      fStream.Free;
     end;
   end;
 end;
end;


 
Anatoly Podgoretsky ©   (2008-07-23 18:49) [53]

> Дима  (23.07.2008 18:09:46)  [46]

Значит 99% за реализацию на CRC и 1 за MD5



Страницы: 1 2 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.016 c
3-1204711605
Kolan
2008-03-05 13:06
2008.08.31
В какой программе администир. для SQL Light можно делать связи?


2-1216836336
Newser
2008-07-23 22:05
2008.08.31
Как передать данные из одной БД Access в другую? (патч)


2-1216988088
ketanov
2008-07-25 16:14
2008.08.31
WebModule


15-1215938456
Zeqfreed
2008-07-13 12:40
2008.08.31
Подскажите, как музыка называется


10-1148641186
Davinchi
2006-05-26 14:59
2008.08.31
Обработчик события OnKeyDown в ActiveFormX не реагирует на ...