Главная страница
    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.043 c
2-1176904358
Neket
2007-04-18 17:52
2007.05.13
Как узнать в путь...


15-1176418839
Oblivion
2007-04-13 03:00
2007.05.13
Как заработать денег на своей проге


3-1171630884
Stanislav
2007-02-16 16:01
2007.05.13
Подключение к dbf с помощю Jet


8-1156246891
Zeleniy
2006-08-22 15:41
2007.05.13
удаление содержимого звукового файла


2-1177331483
snakecatcher
2007-04-23 16:31
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский