首页 > 后端开发 > Golang > 正文

Golang如何使用crypto/sha256生成哈希_Golang SHA256哈希生成实践

P粉602998670
发布: 2025-12-19 17:05:57
原创
445人浏览过
Go语言中使用crypto/sha256包可生成SHA-256哈希值,适用于数据完整性校验等场景;1.导入crypto/sha256包;2.通过sha256.New()和Write方法或简化的Sum256函数对字符串计算哈希;3.处理大文件时可结合io.Copy分块读取以避免内存溢出。

golang如何使用crypto/sha256生成哈希_golang sha256哈希生成实践

在Go语言中,使用 crypto/sha256 包可以轻松生成 SHA-256 哈希值。SHA-256 是一种广泛使用的加密哈希函数,能将任意长度的数据转换为 32 字节(256 位)的唯一摘要,常用于数据完整性校验、密码存储等场景。

导入 crypto/sha256 包

要使用 SHA-256 功能,需导入标准库中的 crypto/sha256:

import "crypto/sha256"

对字符串生成 SHA-256 哈希

以下是一个对字符串生成 SHA-256 哈希的完整示例:

package main

import (
  "crypto/sha256"
  "fmt"
  "strings"
)

func main() {
  data := "Hello, Golang!"
  
  // 创建一个新的 sha256 hash 对象
  hash := sha256.New()
  
  // 向 hash 写入数据(需要字节切片)
  hash.Write([]byte(data))
  
  // 计算并获取哈希结果
  result := hash.Sum(nil)
  
  // 将结果格式化为十六进制字符串
  fmt.Printf("SHA-256: %x\n", result)
}

输出结果为:

立即学习go语言免费学习笔记(深入)”;

SHA-256: 1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f53

简化写法:使用 Sum256 函数

如果只是对一段数据一次性计算哈希,可以直接使用 sha256.Sum256() 函数,更简洁:

寻光
寻光

阿里达摩院寻光视频创作平台,以视觉AIGC为核心功能,用PPT制作的方式创作视频

寻光 240
查看详情 寻光
package main

import (
  "crypto/sha256"
  "fmt"
)

func main() {
  data := "Hello, Golang!"
  hash := sha256.Sum256([]byte(data))
  fmt.Printf("SHA-256: %x\n", hash)
}

该方法返回的是一个 [32]byte 数组,%x 格式符会自动将其转为小写十六进制字符串。

处理文件或大块数据

对于大文件,应分块读取并逐步写入 hash 对象,避免内存溢出:

package main

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

func getFileHash(filename string) (string, error) {
  file, err := os.Open(filename)
  if err != nil {
    return "", err
  }
  defer file.Close()

  hash := sha256.New()
  _, err = io.Copy(hash, file)
  if err != nil {
    return "", err
  }

  return fmt.Sprintf("%x", hash.Sum(nil)), nil
}

利用 io.Copy 可以高效地将文件内容复制到 hash 中,同时完成哈希计算。

基本上就这些。Golang 的 crypto/sha256 接口设计简洁,适合各种哈希需求,无论是字符串、用户输入还是文件内容,都能快速实现安全的 SHA-256 摘要生成。

以上就是Golang如何使用crypto/sha256生成哈希_Golang SHA256哈希生成实践的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号