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

Вниз

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

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

Наверх





Память: 0.48 MB
Время: 0.039 c
2-1176958517
san655
2007-04-19 08:55
2007.05.13
Не изменяется свойство Count у компонента Listbox


15-1176575815
DillerXX
2007-04-14 22:36
2007.05.13
Не совсем пятничная задачка, но очень интересно как решать


2-1177416203
Lamborgini
2007-04-24 16:03
2007.05.13
Помощь нужна


8-1154363286
Василий
2006-07-31 20:28
2007.05.13
Отображение картинки в DrawGrid


15-1176788261
Riply
2007-04-17 09:37
2007.05.13
Интернет кафе с программистским уклоном :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский