Введение
Данная лабораторная работа (LabEx) призвана показать, как вычислять хэши SHA256 на языке Go. Хэши SHA256 обычно используются для вычисления коротких идентификаторов для двоичных или текстовых блоков данных.
This tutorial is from open-source community. Access the source code
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
Данная лабораторная работа (LabEx) призвана показать, как вычислять хэши SHA256 на языке Go. Хэши SHA256 обычно используются для вычисления коротких идентификаторов для двоичных или текстовых блоков данных.
Для заданной строки вычислить ее хэш SHA256.
crypto/sha256
и fmt
.sha256.New()
для создания нового хэша.Write
для записи байтов строки в хэш.Sum
для получения окончательного результата хэша в виде среза байтов.## Запуск программы вычисляет хэш и выводит его
## в человекочитаемом шестнадцатеричном формате.
$ go run sha256-hashes.go
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...
## Вы можете вычислять другие хэши, используя аналогичный
## вышеприведенному шаблон. Например, для вычисления
## хэшей SHA512 импортируйте `crypto/sha512` и используйте
## `sha512.New()`.
## Обратите внимание, что если вам нужны криптографически
## стойкие хэши, вы должны тщательно изучить
## [силу хэша](https://en.wikipedia.org/wiki/Cryptographic_hash_function)!
Ниже представлен полный код:
// [_Хэши SHA256_](https://en.wikipedia.org/wiki/SHA-2)
// часто используются для вычисления коротких идентификаторов
// для двоичных или текстовых блоков данных. Например,
// сертификаты TLS/SSL используют SHA256 для вычисления
// подписи сертификата. Вот как вычислить хэши SHA256 на Go.
package main
// Go реализует несколько функций хэширования в различных
// пакетах `crypto/*`.
import (
"crypto/sha256"
"fmt"
)
func main() {
s := "sha256 this string"
// Здесь мы начинаем с нового хэша.
h := sha256.New()
// Функция `Write` ожидает байты. Если у вас есть строка `s`,
// используйте `[]byte(s)` для преобразования ее в байты.
h.Write([]byte(s))
// Это получает окончательный результат хэширования в виде
// среза байтов. Аргумент функции `Sum` можно использовать
// для добавления к существующему срезу байтов: обычно он не нужен.
bs := h.Sum(nil)
fmt.Println(s)
fmt.Printf("%x\n", bs)
}
В данной лабораторной работе (LabEx) показано, как вычислять хэши SHA256 на языке Go с использованием пакета crypto/sha256
. Следуя требованиям и завершив раздел TODO, программа может вычислить хэш SHA256 для заданной строки.