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

Вниз

хеш функция   Найти похожие ветки 

 
Ксандр   (2007-04-18 15:20) [0]

Как создать Хеш функцию


 
McSimm_ ©   (2007-04-18 15:22) [1]

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


 
Сергей М. ©   (2007-04-18 15:22) [2]

Вот так:

function HashFunction(параметры): результат;
begin
end;


 
DrPass ©   (2007-04-18 15:22) [3]

Например, так:
function Hash(var a: integer): integer;
begin
 Result:= a * 2;
end;


 
Ксандр   (2007-04-18 15:28) [4]

Скажите пожалуйста что это вообще за функция, и принцип её работы, может, кто знает сайт.


 
Сергей М. ©   (2007-04-18 15:32) [5]


> что это вообще за функция


А тебе зачем ?
Праздное любопытство ?)


 
Ксандр   (2007-04-18 15:34) [6]

Ну вобщето это не совсем любопытство, я люблю занимать крипталогией, и хочу узнать побольше о этой функции


 
McSimm_ ©   (2007-04-18 15:34) [7]

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

Алгоритмов хеширования много. Самые распространенные
CRC (вариации по размерности)
SHA-1,SHA-2 (SHA-256 и др.), MD5


 
Ксандр   (2007-04-18 15:39) [8]

А зачем такая функция если данные нельзя обратно восстановить


 
Ксандр   (2007-04-18 15:41) [9]

Есть ли в интернете исходник программы использующую эту функцию


 
McSimm_ ©   (2007-04-18 15:44) [10]

Два примера:
контрольная сумма. передается/хранится вместе с данными. проверка данных на соответствие контрольной сумме дает высокую вероятность целостности данных.
(частный случай - бит четности в запоминающих устройствах)

другой пример - хеширование паролей. система идентификации может хранить не сам пароль, а его хэш, при этом проверить введенный пароль на правильность возможно а узнать пароль по его хэшу обычно затруднительно.


 
Ксандр   (2007-04-19 18:36) [11]

Вот нашёл исходник одной хеш функции помогите пожалуйста перевести её в Delphi
unsigned HashData(void * pDATA, int iLength)

{

  unsigned uiRetVal = 0;

  while (iLength--)

  {

     uiRetVal += (*(char*)pDATA++);            

  }

 

  return uiRetVal % 1001;

}


 
Kolan ©   (2007-04-19 18:42) [12]

> Два примера:

Еще

Есть вписок строк. Тебе дают строку и говорят отыскать ее в списке. Можно тупо перебирать все строки и сравнивать каждый символ — долго ессно.

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

Но тут возможны коллизии — разным строкам соотв. одинаковый хеш&#133


 
McSimm_ ©   (2007-04-19 18:48) [13]

function HashData(const data: String): Cardinal;
var
 I: Integer;
begin
 Result := 0;
 for I := 1 to Length(data) do
 begin
   Result := Result + ord(data[I]);
 end;
 Result := Result mod 1001;
end;

Мог ошибиться, паскаля под рукой нет :)


 
McSimm_ ©   (2007-04-19 18:50) [14]

Это пример очень плохой хэш-функции, т.к. вероятность получения одинакового ключа для разных наборов огромна.


 
Kolan ©   (2007-04-19 18:52) [15]

> Это пример очень плохой хэш-функции

Да их полно в нете, афтору ж лень поискать&#133


 
Ксандр   (2007-04-19 18:52) [16]

McSimm_ ©   (19.04.07 18:50) [14]
Может вы знаете более совершенную функцию


 
Kolan ©   (2007-04-19 18:53) [17]

> Может вы знаете более совершенную функцию

О, я ж говорю лень&#133


 
McSimm_ ©   (2007-04-19 18:55) [18]

Я же перечислил несколько.

Возьмите к примеру весьма распространенную (достаточно удобная и качественная) md5.
Реализации этого алгоритма, полагаю, можно найти для любого языка.


 
McSimm_ ©   (2007-04-19 18:56) [19]

http://www.google.com/search?q=md5+pascal


 
McSimm_ ©   (2007-04-19 18:57) [20]

Тут лучше http://ru.wikipedia.org/wiki/MD5



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

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

Наверх




Память: 0.51 MB
Время: 0.033 c
2-1176989057
allucard
2007-04-19 17:24
2007.05.13
Есть окно Form2, но его необходимо создать автоматически


2-1177495186
cvg
2007-04-25 13:59
2007.05.13
эстетичное обращение к последнему элементу массива


15-1176143491
ANTPro
2007-04-09 22:31
2007.05.13
Почтовый клиент.


2-1176971469
pasha_golub
2007-04-19 12:31
2007.05.13
Не могу закрыть MDIChild окно


2-1177078983
roman_ln
2007-04-20 18:23
2007.05.13
TDBNavigator как обработать событие кнопки