【go从零单排】SHA256 Hashes加密

🌈Don't worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。

📗概念

在 Go 语言中,使用 crypto/sha256 包可以方便地计算 SHA-256 哈希值。SHA-256 是一种广泛使用的加密哈希函数,输出一个固定长度的 256 位(32 字节)的哈希值,通常以十六进制形式表示。

使用 SHA-256 计算哈希的步骤

  1. 导入必要的包:需要 crypto/sha256 和 fmt 包。
  2. 创建 SHA-256 哈希对象:使用 sha256.New() 创建一个新的哈希对象。
  3. 写入数据:使用 Write 方法将要哈希的数据写入哈希对象。
  4. 计算哈希值:使用 Sum 方法获取最终的哈希值。

💻代码

go 复制代码
package main

import (
	//crypto/sha256:用于计算 SHA-256 哈希。
	"crypto/sha256"
	"fmt"
)

func main() {
	//定义字符串:定义一个字符串 s,其内容为 "sha256 this string"。
	s := "sha256 this string"
	//创建 SHA-256 哈希对象:sha256.New() 创建一个新的 SHA-256 哈希对象 h。
	h := sha256.New()
	//写入数据:将字符串 s 转换为字节切片并写入哈希对象 h。这一步是计算哈希的关键。
	h.Write([]byte(s))
	//计算哈希值:h.Sum(nil) 计算当前哈希值并返回一个字节切片 bs。传入 nil 表示不需要额外的字节切片来存储结果。
	bs := h.Sum(nil)
	//输出原始字符串:打印原始字符串 s。
	fmt.Println(s)
	//输出哈希值:使用 %x 格式化输出哈希值 bs,以十六进制形式显示。这是 SHA-256 哈希的常见表示方式。
	fmt.Printf("%x\n", bs)
}

//输出
//sha256 this string
//1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a0d3db739d77aacb

🔍理解

  • 安全性:SHA-256 是一种安全的哈希算法,广泛应用于数字签名、数据完整性校验等场景。
  • 性能:相较于其他哈希算法(如 MD5),SHA-256 提供了更高的安全性,但计算速度稍慢。
  • 多次哈希:可以多次调用 Write 方法来分块写入数据,最后再调用 Sum 方法计算哈希值。

💪无人扶我青云志,我自踏雪至山巅。

相关推荐
第九序言T1 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
龙亘川2 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人2 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas1003 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真4 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy14 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫125 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切5 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog6 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方7 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php