Почевши од Го
Само да бисмо били сигурни да смо на истој страници, ево структуре директоријума коју сам направио за свој програм Хелло Ворлд:
Ево програма који смо креирали:
пакет главниувоз "фмт"
фунц маин ()
фмт.Принтф („Здраво, свете.\ н ")
Горњи програм можемо покренути следећом наредбом:
иди трчи здраво.идиЈедном када покренемо ову наредбу, ево резултата који ћете видети:
Сад то изгледа добро. Пређимо на нашу главну агенду.
Крипто пакет у Голангу
Коришћење Црипто-а у Голангу није лако разумјети. То је због конструкција које пружа и алгоритма који следи да би се постигло шифровање и дешифровање.
У овој лекцији проучићемо следеће тачке:
- Шифровање СХА256
- Како се користи бцрипт за шифровање низова попут лозинки у вашим веб апликацијама
- Коришћење АЕС шифровања и дешифровања
Почнимо са хеширањем и упоређивањем лозинки.
СХА256 Шифровање
Почећемо са помало једноставним. Покушаћемо на врло једноставном примеру како да изведемо СХА256 шифровање помоћу Голанга. Погледајмо пример:
пакет главниувоз (
"фмт"
"грешке"
"крипто / сха256"
"енцодинг / басе64"
)
фунц маин ()
сомеТект: = "схубхам"
хасх, ерр: = хасхТектТо32Битес (сомеТект)
фмт.Принтф ("% с \ н% с", хеш, грешка)
фунц хасхТектТо32Битес (хасхТхис стринг) (хеширани низ, грешка грешке)
ако је лен (хасхТхис) == 0
повратак "", грешке.Ново („Није достављен улаз“)
хешер: = сха256.Нова()
хасхер.Напишите ([] бајт (хасхТхис))
стрингТоСХА256: = басе64.УРЛЕнцодинг.ЕнцодеТоСтринг (хасхер.Збир (нула))
// Смањимо дужину на 32 бајта и вратимо.
ретурн стрингТоСХА256 [: 32], нил
У почетку смо креирали хешер. Након овога, користили смо га за писање хеша у бајтни низ. На крају кодирамо Стринг и враћамо 32 бита хеша.
Када покренемо овај пример, добићемо следећи излаз:
Хасхинг и подударање лозинке
Сада ћемо коначно користити бцрипт за производњу хасхед лозинки. Функције ће бити директне и једноставне.
Такође ћемо укључити функцију која подудара хеширану лозинку са датим низом. На овај начин такође можемо потврдити да ли је лозинка коју је унео корисник исправна. Пре покретања овог кода мораћете да инсталирате голанг пакет за бцрипт следећом наредбом:
# иди узми "голанг.орг / к / црипто / бцрипт "Тада можете извршити овај код:
пакет главниувоз "фмт"
увоз "голанг.орг / к / црипто / бцрипт "
фунц ХасхПассворд (низ лозинке) (низ, грешка)
бајтова, грешка: = бцрипт.ГенератеФромПассворд ([] бајт (лозинка), 14)
повратни низ (бајтови), грешка
фунц ЦхецкПассвордХасх (лозинка, хеш стринг) боол
грешка: = бцрипт.ЦомпареХасхАндПассворд ([] бајт (хеш), [] бајт (лозинка))
ретурн грешка == нил
фунц маин ()
миПвд: = "схубхам"
провидедХасх, _: = ХасхПассворд (миПвд)
фмт.Принтлн ("Лозинка:", миПвд)
фмт.Принтлн ("Хасх:", под условомХасх)
исМатцх: = ЦхецкПассвордХасх (миПвд, провидедХасх)
фмт.Принтлн ("Подударно ?: ", исМатцх)
Када покренемо овај пример, добићемо следећи излаз:
Закључак
У овом посту проучавали смо једноставне, али корисне примере како можемо да користимо крипто пакет за радње веома важне и корисне у нашим апликацијама.