Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2008, 14:11   #11
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

а я понял, что человеку нужен просто алгоритм, и не обязательно обладающий повышенной криптостойкостью..

т.е. представьте, что известын алгоритмов CRC нет ..
а понятие 'контрольная сумма' - только появляется .
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 03.02.2008, 15:56   #12
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
а я понял, что человеку нужен просто алгоритм, и не обязательно обладающий повышенной криптостойкостью..
прямо в точку!! уверен на 100% что топикстартёру именно это и надо!
по сути CRC32 - это и есть контрольная сумма.

Код:
function GetCRC32(DPTR:pointer;DataSize:DWORD):DWORD;
asm
	push esi
	push edi
	push ecx
	push ebx
	push edx

  mov esi,DPTR
  mov edi,DataSize

	cld
	xor	ecx,ecx
	dec	ecx
	mov	edx,ecx
 @@NextByteCRC:
	xor	eax,eax
	xor	ebx,ebx
	lodsb
	xor	al,cl
	mov	cl,ch
	mov	ch,dl
	mov	dl,dh
	mov	dh,8
 @@NextBitCRC:
	shr	bx,1
	rcr	ax,1
	jnc	@@NoCRC
	xor	ax,08320h
	xor	bx,0EDB8h
 @@NoCRC:
	dec	dh
	jnz	@@NextBitCRC
	xor	ecx,eax
	xor	edx,ebx
	dec	edi
	jnz	@@NextByteCRC
	not	edx
	not	ecx
	mov	eax,edx
	rol	eax,16
	mov	ax,cx

	pop edx
	pop ebx
	pop ecx
	pop edi
	pop esi
	ret
end;
пример использования:

нахождение контрольной суммы от строки "CreateFileA".
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
begin
  str:='CreateFileA';
  ShowMessage(inttohex(GetCRC32(Pchar(str),length(str)),8));
end;

Последний раз редактировалось rpy3uH; 03.02.2008 в 15:59.
rpy3uH вне форума Ответить с цитированием
Старый 14.02.2008, 09:51   #13
Paul Hindenburg
Форумчанин
 
Аватар для Paul Hindenburg
 
Регистрация: 27.07.2007
Сообщений: 123
По умолчанию

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

т.е. представьте, что известын алгоритмов CRC нет ..
а понятие 'контрольная сумма' - только появляется .
точно !!!! вот это мне и нужно!!!
всех благодарю, тему можно закрывать
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
Paul Hindenburg вне форума Ответить с цитированием
Старый 14.02.2008, 10:00   #14
Paul Hindenburg
Форумчанин
 
Аватар для Paul Hindenburg
 
Регистрация: 27.07.2007
Сообщений: 123
По умолчанию

и еще одно: мне был нужен именно алгоритм, а язык программирования не имеет значения все должно быть универсальным
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
Paul Hindenburg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из строки в число и обратно AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.05.2010 18:49
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Как найти большее число из имеющихся значений в Паскале? Auditor Помощь студентам 7 05.05.2008 21:57
Извлечь число из строки и присвоить его переменной. Adamant Общие вопросы C/C++ 3 12.11.2007 07:24
В целочисленном массиве найти самое часто повторяющееся число Алена Помощь студентам 2 01.11.2007 19:46