Хасхинг функција на Јави - Примене Хасх функције

Преглед садржаја:

Anonim

Увод у функцију хеширања на Јави

Као што знамо да је Јава објектно орјентисан језик, стога би требао постојати механизам за описивање стања објекта, без обзира колико објект могао бити велик. Хасхинг функција у Јави настала је да испуни овај захтев.

Шта је функција лежања?

Хасх функција може се дефинирати као функција која враћа цјелобројну вриједност која одговара Објекту. Хасх функција увијек враћа исту цјелобројну вриједност за исти објект. Цела вредност враћена хасх функцијом назива се Хасх Валуе. Следе важне тачке у вези са функцијом Хасх:

  • Увек враћа цијели број (4 бајта) за објект.
  • Не можемо израчунати стање објекта из хасх вредности која је хасх функција су неповратне природе.
  • Два једнака објекта имаће исту хасх вредност.
  • Два неједнака објекта немају увек различите Хасх вредности.

Примене Хасх функције

Ово су уобичајене апликације хасх функција:

1. Структуре података

Скоро сваки програмски језик садржи структуре података засноване на хасх-у. На пример, јава садржи Хасх табелу, Хасх мапу, Хасх Сет, Трее Сет структуре података засноване на функцији Хасх. Основа ових структура података је дизајн Кеи-Валуе где је сваки кључ јединствен док иста вредност може постојати за више кључева.

2. Дигест за поруке

Овај алгоритам се користи у провјери интегритета података. Овај алгоритам узима поруку било које дужине као улаз и ствара податке фиксне дужине (128-битне) као излаз. Примери алгоритама за разбијање порука укључују МД2, МД4, МД5 и МД6.

3. Сигурни алгоритам за развлачење

Овај алгоритам користи се за сигурност података и користи се у апликацијама и протоколима попут Сецуре Соцкет Лаиер (ССЛ). СХА-0, СХА-1, СХА-2 и СХА-3 су уобичајене категорије алгоритма сигурног хашиша.

4. Провера и складиштење лозинке

Размотримо сценариј пријаве у којем се, када се уноси лозинка за аутентификацију корисника, израчунава хасх вредност унете лозинке и шаље преко мреже на сервер на коме се чува хасх оригинала. Ово је учињено како би се осигурало да се њушкање не изврши када се лозинка од клијента пошаље на сервер.

5. Рад компајлера

Будући да се у програмском језику користе различите кључне речи, ради разликовања између тих кључних речи и идентификатора, преводилац користи скуп хасх-а који се имплементира помоћу таблице хасх-а за смештање свих ових кључних речи и идентификатора.

6. Алгоритам Рабина-Карпа

То је алгоритам за претраживање који користи хасхинг за тражење једног или више образаца у датом низу. То је један од најчешће коришћених алгоритама.

7. Упоредиви и упоредни интерфејси

Ови интерфејси садрже функције које се користе за поређење два објекта одједном. Повратна вредност ових функција може бити негативна, нулта или позитивна на основу тога да ли је одређени објект мањи од, једнак или већи од објекта са којим упоређујемо. Интерни компаративни и упоредиви интерфејси користе хасх функцију за поређење објеката један од другог.

8. Ред приоритета

Ред приоритета је за разлику од уобичајеног реда који слиједи редослијед ФИФО (Фирст ин Фирст оут). У редовима реда приоритета елементи су распоређени у прилагођеном редоследу на основу њиховог приоритета, који се интерно имплементира користећи упоредни и упоредни ком се стажисти заснивају на Хасх функцијама.

Дизајн функција хеш

Ево неких општих принципа дизајна за стварање хасх функција:

  • Требало би ефикасно проценити хасх функцију.
  • Хасх вредности израчунате из хасх функција треба да буду равномерно распоређене, што помаже да се избегну сударе.
  • Јава програмски језик пружа општу функцију хешинга помоћу методе хасхЦоде () у надкласи Објецт.

public int hashCode ()(
//Logic goes here
)

Хасх Цоллисион у Јави

До судара хеш долази када два или више објеката врате исту хеш вредност. Узмимо за пример јава хасх мапе која чува податке у паровима кључ-вредност. Када ставимо објект у хасх мапу, израчунава се хасх вредност кључа и на основу те локације сегмента хасх вредности за проналазак објекта вредности се налази. Објекти који имају различите хасх вредности морају ићи у различите канте. Када два или више објеката имају исту хасх вредност, они се чувају на истој локацији сегмента користећи додатну структуру података која се назива повезана листа. Сви објекти који имају исту хасх вредност вежу се заједно помоћу повезане листе. Овај механизам се назива везивање. Следе начини за решавање судара је хасх функција:

  • Ланац: Као што је већ покривено, идеја ланчаног повезивања је креирање повезане листе објеката који имају исту хасх вредност. Везивање је једноставна техника, али захтева додатну меморију.
  • Отворено адресирање: У овој се техници сви елементи похрањују у хеш табелу у којој сваки унос садржи или запис или НУЛЛ. Када се елемент претражује, сваки унос у хасх табели тражи се жељени запис све док се не нађе потребан запис или се закључи да запис не постоји у табели.

Предности хешинга

Следеће су предности хасхинга:

  1. Упоредите садржај две датотеке лако и ефикасно, без отварања.
  2. Хасх функције се користе за провјеру интегритета датотеке.
  3. Помоћу хеширања, претрага у структурама података је постала бржа.
  4. Хасх функције играју виталну улогу у сигурности података, јер већина сигурносних алгоритама и протокола користи хасхинг.
  5. Хасхинг претвара податке у краћу вредност фиксне дужине или кључ који представља оригинални низ који се може послати преко мреже.

Недостаци хешинга

Осим предности, постоје и одређена ограничења уситњавања:

  1. Хасхинг се не може применити ради сортирања података.
  2. Судар не може се практично избећи што заузврат доводи до неефикасности.

Препоручени чланци

Ово је водич за Хасхинг функцију на Јави. Овде смо расправљали о применама хасх функције заједно са предностима и недостацима. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Изјава и иницијализација ВБ.Нет-а
  2. Јава програм који приказује ХасхМап и ТрееМап
  3. Врсте хешинга у ДБМС-у
  4. Технике стенографије
  5. Низи у Јава програмирању
  6. Хасхмап на Јави