Go语言中SHA256哈希操作通过crypto/sha256包实现,1. 可用sha256.Sum256([]byte(data))直接计算字符串哈希值;2. 通过sha256.New()创建hash.Hash接口,支持Write分块写入,适合流式处理;3. 密码存储时可加salt增强安全性,但应优先选用bcrypt等专用算法。

在Go语言中,SHA256是一种常用的加密哈希算法,用于生成固定长度(32字节)的摘要。它属于crypto/sha256包,适用于数据完整性校验、密码存储等场景。下面展示如何使用Golang进行SHA256哈希操作。
要对一个字符串生成SHA256哈希,需先将其转为字节切片,然后调用sha256.Sum256()函数:
package main
import (
"crypto/sha256"
"fmt"
)
func main() {
data := "hello world"
hash := sha256.Sum256([]byte(data))
fmt.Printf("SHA256: %x\n", hash)
}
说明:Sum256返回[32]byte数组,%x格式化输出为十六进制字符串。
对于大文件或分块数据,可使用Write方法逐步写入内容:
立即学习“go语言免费学习笔记(深入)”;
package main
import (
"crypto/sha256"
"fmt"
)
func main() {
h := sha256.New()
h.Write([]byte("hello"))
h.Write([]byte(" "))
h.Write([]byte("world"))
sum := h.Sum(nil)
fmt.Printf("Hash: %x\n", sum)
}
优点:支持增量写入,适合处理网络流或大文件。
在密码存储中,建议加入随机salt防止彩虹表攻击:
package main
import (
"crypto/sha256"
"fmt"
)
func hashWithSalt(password, salt string) string {
data := password + salt
return fmt.Sprintf("%x", sha256.Sum256([]byte(data)))
}
func main() {
pwd := "mySecretPassword"
salt := "randomSalt123"
hashed := hashWithSalt(pwd, salt)
fmt.Println("Hash with salt:", hashed)
}
注意:实际项目中应使用bcrypt、scrypt或Argon2等专用密码哈希算法,SHA256不加盐不适合直接用于密码存储。
基本上就这些常见用法。SHA256操作简单高效,适合大多数非密码类哈希需求。以上就是Golang hashSHA256加密哈希操作示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号