Начиная с Go
Чтобы убедиться, что мы находимся на одной странице, вот структура каталогов, которую я создал для моей программы Hello World:
Вот созданная нами программа:
основной пакетимпорт "FMT"
func main ()
fmt.Printf ("Привет, мир.\ n ")
Мы можем запустить указанную выше программу с помощью следующей команды:
иди, беги, привет.идтиПосле того, как мы запустим эту команду, вы увидите результат:
Теперь это выглядит хорошо. Перейдем к нашей основной повестке дня.
Криптопакет в Голанге
Использование криптовалюты в Golang непросто для понимания. Это связано с конструкциями, которые он предоставляет, и алгоритмом, которому он следует для достижения шифрования и дешифрования.
В этом уроке мы изучим эти моменты:
- Шифрование SHA256
- Как использовать bcrypt для шифрования строк, таких как пароли, в ваших веб-приложениях
- Использование шифрования и дешифрования AES
Начнем с хеширования и сравнения паролей.
Шифрование 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)
Когда мы запустим этот пример, мы получим следующий результат:
Заключение
В этом посте мы изучили простые, но полезные примеры того, как мы можем использовать криптопакет для выполнения очень важных и полезных действий в наших приложениях.