sha256

原文:https://pkg.go.dev/crypto/sha256@go1.23.0

Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.

​ sha256 包实现 FIPS 180-4 中定义的 SHA224 和 SHA256 哈希算法。

常量

View Source

1
const BlockSize = 64

The blocksize of SHA256 and SHA224 in bytes.

​ SHA256 和 SHA224 的块大小(以字节为单位)。

View Source

1
const Size = 32

The size of a SHA256 checksum in bytes.

​ SHA256 校验和的大小(以字节为单位)。

View Source

1
const Size224 = 28

The size of a SHA224 checksum in bytes.

​ SHA224 校验和的大小(以字节为单位)。

变量

This section is empty.

函数

func New

1
func New() hash.Hash

New returns a new hash.Hash computing the SHA256 checksum. The Hash also implements encoding.BinaryMarshaler and encoding.BinaryUnmarshaler to marshal and unmarshal the internal state of the hash.

​ New 返回一个新的 hash.Hash,用于计算 SHA256 校验和。Hash 还实现了 encoding.BinaryMarshaler 和 encoding.BinaryUnmarshaler,用于编组和取消编组哈希的内部状态。

New Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
	"crypto/sha256"
	"fmt"
)

func main() {
	h := sha256.New()
	h.Write([]byte("hello world\n"))
	fmt.Printf("%x", h.Sum(nil))
}
Output:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

New Example (File)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main

import (
	"crypto/sha256"
	"fmt"
	"io"
	"log"
	"os"
)

func main() {
	f, err := os.Open("file.txt")
	if err != nil {
		log.Fatal(err)
	}
	defer f.Close()

	h := sha256.New()
	if _, err := io.Copy(h, f); err != nil {
		log.Fatal(err)
	}

	fmt.Printf("%x", h.Sum(nil))
}

Output:

func New224

1
func New224() hash.Hash

New224 returns a new hash.Hash computing the SHA224 checksum.

​ New224 返回一个新的 hash.Hash,用于计算 SHA224 校验和。

func Sum224 <- go1.2

1
func Sum224(data []byte) [Size224]byte

Sum224 returns the SHA224 checksum of the data.

​ Sum224 返回数据的 SHA224 校验和。

func Sum256 <- go1.2

1
func Sum256(data []byte) [Size]byte

Sum256 returns the SHA256 checksum of the data.

​ Sum256 返回数据的 SHA256 校验和。

Sum256 Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
	"crypto/sha256"
	"fmt"
)

func main() {
	sum := sha256.Sum256([]byte("hello world\n"))
	fmt.Printf("%x", sum)
}

Output:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

类型

This section is empty.

最后修改 October 10, 2024: 更新 (a4b8f85)