Golang实现sha256或sha512加密

China2286844958 · 2022-08-07 22:00:31 · 4644 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2022-08-07 22:00:31 的文章,其中的信息可能已经有所发展或是发生改变。

代码实现sha-256加密算法

sha-256.go
package tools

import (
    "crypto/sha256"
    "encoding/hex"
)

//SHA256生成哈希值

func GetSHA256HashCode(stringMessage string) string {

    message := []byte(stringMessage) //字符串转化字节数组
    //创建一个基于SHA256算法的hash.Hash接口的对象
    hash := sha256.New() //sha-256加密
    //hash := sha512.New() //SHA-512加密
    //输入数据
    hash.Write(message)
    //计算哈希值
    bytes := hash.Sum(nil)
    //将字符串编码为16进制格式,返回字符串
    hashCode := hex.EncodeToString(bytes)
    //返回哈希值
    return hashCode

}

调用

用main方法调用sha-256

main.go
package main

import (
    "GraduationProject/tools"
    "fmt"
)

func main() {

    txt := "Hello World!"

    code := tools.GetSHA256HashCode(txt)

    fmt.Println("\n加密前的明文\n", txt, "\nSHA-256加密后的密文:\n", code)
}

控制台

加密前的明文
 Hello World!
SHA-256加密后的密文:
 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069

代码实现sha-512

将sha-256.go文件的第15行加上注释,16行去掉注释

package tools

import (
    "crypto/sha256"
    "encoding/hex"
)

//SHA256生成哈希值

func GetSHA256HashCode(stringMessage string) string {

    message := []byte(stringMessage) //字符串转化字节数组
    //创建一个基于SHA256算法的hash.Hash接口的对象
    //hash := sha256.New() //sha-256加密
    hash := sha512.New() //SHA-512加密
    //输入数据
    hash.Write(message)
    //计算哈希值
    bytes := hash.Sum(nil)
    //将字符串编码为16进制格式,返回字符串
    hashCode := hex.EncodeToString(bytes)
    //返回哈希值
    return hashCode

}

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4644 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传