Голанг

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

Крипто-пакет Golang
В этом уроке о пакете Crypto в Golang мы изучим различные примеры управления и создания шифров в Go и увидим, как пакет Crypto помогает нам в отношении обработки шифров в языке программирования Go. Мы начнем сейчас.

Начиная с Go

Чтобы убедиться, что мы находимся на одной странице, вот структура каталогов, которую я создал для моей программы Hello World:

Вот созданная нами программа:

основной пакет
импорт "FMT"
func main ()
fmt.Printf ("Привет, мир.\ n ")

Мы можем запустить указанную выше программу с помощью следующей команды:

иди, беги, привет.идти

После того, как мы запустим эту команду, вы увидите результат:

Теперь это выглядит хорошо. Перейдем к нашей основной повестке дня.

Криптопакет в Голанге

Использование криптовалюты в Golang непросто для понимания. Это связано с конструкциями, которые он предоставляет, и алгоритмом, которому он следует для достижения шифрования и дешифрования.

В этом уроке мы изучим эти моменты:

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

Шифрование SHA256

Начнем с нескольких простых. Мы попробуем очень простой пример того, как выполнить шифрование SHA256 с помощью Golang. Посмотрим на пример:

основной пакет
Импортировать (
"fmt"
"ошибки"
"крипто / sha256"
"кодировка / base64"
)
func main ()
someText: = "шубхам"
хеш, ошибка: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", хэш, ошибка)

func hashTextTo32Bytes (hashThis string) (хешированная строка, ошибка err)
if len (hashThis) == 0
возврат "", ошибки.Новый ("Нет ввода")

хешер: = sha256.Новый()
хешер.Запишите ([] байт (hashThis))
stringToSHA256: = base64.URLEncoding.EncodeToString (хэш.Сумма (ноль))
// Уменьшаем длину до 32 байтов и возвращаем.
вернуть stringToSHA256 [: 32], ноль

Мы начали с создания хешера изначально. После этого мы использовали его для записи хэша в байтовый массив. Наконец, мы кодируем строку и возвращаем 32 бита хэша.

Когда мы запустим этот пример, мы получим следующий результат:

Хеширование и соответствие пароля

Теперь мы, наконец, будем использовать bcrypt для создания хешированных паролей. Мы сохраним функции прямыми и простыми.

Мы также включим функцию, которая сопоставляет хешированный пароль с заданной строкой. Таким образом, мы также можем подтвердить, правильный ли пароль, предоставленный пользователем.  Перед запуском этого кода необходимо установить пакет golang для bcrypt с помощью следующей команды:

# иди иди "голанг".org / x / crypto / bcrypt "

Затем вы можете выполнить этот код:

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

func CheckPasswordHash (пароль, строка хэша) bool
err: = bcrypt.CompareHashAndPassword ([] байт (хэш), [] байт (пароль))
return err == nil

func main ()
myPwd: = "шубхам"
providedHash, _: = HashPassword (myPwd)
fmt.Println ("Пароль:", myPwd)
fmt.Println ("Hash:", при условииHash)
isMatch: = CheckPasswordHash (myPwd, providedHash)
fmt.Println ("Соответствует ?: ", isMatch)

Когда мы запустим этот пример, мы получим следующий результат:

Заключение

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

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...