голанг

Крипто пакет Golang

Крипто пакет Golang
В този урок за Crypto пакета в Golang ще изучим различни примери за управление и създаване на шифри в Go и ще видим как Crypto пакетът ни помага по отношение на Cipher Handling в езика за програмиране Go. Сега ще започнем.

Започвайки с Go

Само за да сме сигурни, че сме на една и съща страница, ето структурата на директориите, която направих за моята програма Hello World:

Ето програмата, която създадохме:

пакет основен
импортиране "fmt"
func main ()
fmt.Printf ("Здравей, свят.\н")

Можем да стартираме горната програма със следната команда:

иди тичай здравей.отивам

След като изпълним тази команда, ето резултата, който ще видите:

Сега това изглежда добре. Нека да преминем към основната ни програма.

Крипто пакет в Golang

Използването на Crypto в Golang не е много лесно за разбиране. Това се дължи на конструкциите, които предоставя, и алгоритъма, който следва, за да се постигне криптиране и декриптиране.

В този урок ще изучим следните точки:

Нека започнем с хеширане и сравняване на пароли.

Шифроване SHA256

Ще започнем с малко просто. Ще изпробваме много прост пример за това как да извършим SHA256 криптиране с помощта на Golang. Нека разгледаме примера:

пакет основен
внос (
"fmt"
"грешки"
"крипто / sha256"
"кодиране / base64"
)
func main ()
someText: = "shubham"
хеш, грешка: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", хеш, грешка)

func hashTextTo32Bytes (hashThis низ) (хеширан низ, грешка при грешка)
ако len (hashThis) == 0
връщане "", грешки.Ново („Няма предоставен вход“)

хеш: = sha256.Ново ()
хашер.Запис ([] байт (hashThis))
stringToSHA256: = base64.URLEкодиране.EncodeToString (хеш.Сума (нула))
// Намалете дължината до 32 байта и върнете.
връща низToSHA256 [: 32], нула

Започнахме с първоначалното създаване на хеш. След това го използвахме за запис на хеш в байтов масив. Накрая кодираме String-а и връщаме 32-те бита хеш.

Когато стартираме този пример, ще получим следния изход:

Хеширане и съвпадение на парола

Сега най-накрая ще използваме bcrypt за генериране на хеширани пароли. Ще поддържаме функциите директни и прости.

Ще включим и функция, която съответства хешираната парола на даден низ. По този начин можем също да потвърдим дали паролата, предоставена от потребителя, е правилна.  Преди да стартирате този код, ще трябва да инсталирате пакета golang за bcrypt със следната команда:

# go get "golang.org / x / crypto / bcrypt "

След това можете да изпълните този код:

пакет основен
импортиране "fmt"
внос "golang.org / x / crypto / bcrypt "
func HashPassword (низ за парола) (низ, грешка)
байта, грешка: = bcrypt.GenerateFromPassword ([] байт (парола), 14)
връщащ низ (байтове), грешка

func CheckPasswordHash (парола, хеш низ) bool
грешка: = bcrypt.CompareHashAndPassword ([] байт (хеш), [] байт (парола))
върнете грешка == нула

func main ()
myPwd: = "shubham"
providedHash, _: = HashPassword (myPwd)
fmt.Println ("Парола:", myPwd)
fmt.Println ("Hash:", при условиеHash)
isMatch: = CheckPasswordHash (myPwd, условиеHash)
fmt.Println ("Съвпадение ?: ", isMatch)

Когато стартираме този пример, ще получим следния изход:

Заключение

В тази публикация изучихме прости, но полезни примери за това как можем да използваме крипто пакет, за да правим действия, много важни и полезни в нашите приложения.

Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...
Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...