Функция sha512.New
Функция sha512.New создает новый объект, реализующий интерфейс hash.Hash, для вычисления хеша SHA-512. Возвращаемый объект может использоваться для последовательного добавления данных через метод Write и получения итогового хеша через метод Sum. Функция не принимает никаких параметров.
Синтаксис
sha512.New()
Пример
Давайте вычислим хеш SHA-512 для строки "hello world":
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New()
h.Write([]byte("hello world"))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5fd4990f0e188f50c318ae163c9e4e95d114728e076e2a3d7f5eb25"
Пример
Давайте вычислим хеш SHA-512 для пустой строки:
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New()
h.Write([]byte(""))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
Пример
Давайте вычислим хеш SHA-512 для нескольких фрагментов данных с использованием метода Write:
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New()
h.Write([]byte("hello"))
h.Write([]byte(" "))
h.Write([]byte("world"))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5fd4990f0e188f50c318ae163c9e4e95d114728e076e2a3d7f5eb25"
Обратите внимание, что результат идентичен хешу строки "hello world", так как данные записываются последовательно.
Пример
Давайте получим хеш SHA-512 в виде среза байт для дальнейшего использования:
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New()
h.Write([]byte("12345"))
res := h.Sum(nil)
fmt.Println(res)
}
Результат выполнения кода:
"[136 158 35 148 0 241 95 230 109 141 231 70 242 59 234 74 164 232 87 132 50 167 26 234 92 199 249 67 45 47 85 103 30 201 143 186 194 237 70 75 61 149 27 118 149 131 28 215 218 127 247 135 251 148 78 195 245 68 152 74 61 157 60 169]"
Смотрите также
-
функцию
sha512.Sum512,
которая вычисляет SHA-512 хеш за один вызов -
функцию
sha512.New384,
которая создает объект для вычисления SHA-384 хеша -
функцию
sha256.New,
которая создает объект для вычисления SHA-256 хеша -
интерфейс
hash.Hash,
который реализует возвращаемый объект