Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];

Вниз

Как расчитать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.008 c
1-1197552021
Zheksik
2007-12-13 16:20
2008.08.31
запретить вывод на консоль


2-1216831690
ivanoff
2008-07-23 20:48
2008.08.31
DBGridEh - научить любить и "," и "."


2-1216735433
mc2
2008-07-22 18:03
2008.08.31
TTreeView скопировать в другой


8-1184845530
ZMRaven
2007-07-19 15:45
2008.08.31
Захват


2-1216804295
Dimich1978
2008-07-23 13:11
2008.08.31
Как удалить из doc определеные строки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский