Ноде.јс крипто модул поједностављује процес извођења криптографских операција. Ево како да га користите.

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

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

Овде ћете истражити различите апликације крипто модула Ноде.јс и како их можете користити да заштитите своје апликације.

Хеширање

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

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

Ноде.јс крипто модул подржава различите функције хеширања као што су СХА-256, СХА-512, МД5 и још много тога.

instagram viewer

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

На пример:

конст крипто = захтевају('крипто');

конст подаци = "Лозинка";

// креирање хеш објекта
конст хасхАлго = црипто.цреатеХасх('сха256')

// прослеђивање података за хеширање
хасхАлго.упдате (подаци);

// Креирање хеша у потребном формату
конст хасх = хасхАлго.дигест('хек');

конзола.Пријава(`Хаш: ${хасх}`);

У горњем примеру, крипто модул цреатеХасх креирао објекат хеширања са сха256 алгоритам хеширања. Тхе ажурирање метода на хеш објекту узима улазне податке и хешује их. Затим дигест метода узима параметар кодирања, наводећи формат излазне хеш вредности и враћа хеш у наведеном формату (хек).

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

Генерисање случајних података

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

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

У играма, можете користити насумичне податке да генеришете нивое игре, ликове, предмете и још много тога да бисте спречили варање и били сигурни да игра није предвидљива.

У тестирању, можете га користити за симулацију сценарија из стварног света и ивичних случајева.

Можете да генеришете насумичне податке користећи Ноде.јс крипто модул рандомБитес методом. Овај метод узима број као аргумент и враћа бафер насумичних бајтова.

Овај број представља величину бајтова које ће метод генерисати. Међутим, број не сме бити већи од 2³¹ - 1 (2147483647), што је максимална вредност која се може представити 32-битним целим бројем.

На пример:

конст крипто = захтевају("крипто");

// креирати насумичне бајтове
конст рандомБитес = црипто.рандомБитес(32);

// претворити у хексадецимални
конст рандомСтринг = рандомБитес.тоСтринг("хекс");

конзола.лог (рандомСтринг); //записује насумични стринг у конзолу

Горњи блок кода генерише и евидентира насумични низ од 64 хексадецимална знака (32 бајта) у конзолу.

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

Шифровање и дешифровање у Ноде.јс

Шифровање је процес претварања обичног текста у нечитљив облик (шифровани текст) коришћењем алгоритма за шифровање и тајног кључа.

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

Ноде.јс крипто модул пружа подршку за различите алгоритме за шифровање и дешифровање, укључујући АЕС (напредни стандард шифровања), ДЕС (стандард шифровања података) и РСА (Ривест–Шамир–Адлеман).

Како шифровати податке у Ноде.јс користећи крипто модул

Можете да шифрујете податке користећи црипто.цреатеЦипхерив() метод, који узима алгоритам шифровања, тајни кључ и вектор иницијализације као улаз. Тајни кључ зависи од алгоритма за шифровање који користите. На пример, за алгоритам аес-256 ин ЦБЦ режиму, дужина кључа мора бити 32 бајта.

Метод враћа а Ципхер објекат, који можете користити за шифровање података помоћу ажурирање() и коначни() методе. Шифровани подаци се обично представљају као хексадецимални низ или бафер.

На пример:

конст крипто = захтевају("крипто");

// Генериши тајни кључ за шифровање и дешифровање.
конст сецретКеи = црипто.рандомБитес(32);

// Генериши вектор иницијализације
конст ив = црипто.рандомБитес(16);

// подаци за шифровање
конст плаинТект = "Ово је тајна порука";

// креирати објекат шифре
конст шифра = црипто.цреатеЦипхерив("аес-256-цбц", сецретКеи, ив);

// шифровање података
дозволити енцриптедТект = ципхер.упдате (плаинТект, "утф-8", "хекс");

// завршимо шифровање
енцриптедТект += ципхер.финал("хекс");

конзола.лог (енцриптедТект);

Горњи пример показује како можете да шифрујете обичан текст користећи аес-256 у ЦБЦ режиму помоћу крипто модула. Он генерише тајни кључ и вектор иницијализације користећи црипто.рандомБитес методом. Затим креира објекат шифре користећи црипто.цреатеЦипхерив методом и шифрује обичан текстуалну поруку користећи ципхер.упдате и шифра.коначна методе.

Резултат је хексадецимални низ шифроване поруке, који можете дешифровати користећи исти тајни кључ и ИВ.

Како дешифровати податке у Ноде.јс помоћу крипто модула

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

На пример:

// креирање дешифрованог објекта
конст дешифровати = црипто.цреатеДеципхерив("аес-256-цбц", сецретКеи, ив);

// дешифровање података
дозволити децриптедТект = дешифровати.ажурирање (шифровани текст, "хекс", "утф-8");

// завршимо дешифровање
децриптедТект += дешифровати.финал("утф-8");

конзола.лог (децриптедТект); // Ово је тајна порука

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

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

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

Друге апликације крипто модула Ноде.јс

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