Вычисление хэшей SHA256 на Go

GolangGolangBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Данная лабораторная работа (LabEx) призвана показать, как вычислять хэши SHA256 на языке Go. Хэши SHA256 обычно используются для вычисления коротких идентификаторов для двоичных или текстовых блоков данных.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/AdvancedTopicsGroup(["Advanced Topics"]) go/AdvancedTopicsGroup -.-> go/sha256_hashes("sha256 Hashes") subgraph Lab Skills go/sha256_hashes -.-> lab-15504{{"Вычисление хэшей SHA256 на Go"}} end

Хэши 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 для заданной строки.