Hash函数

常用的Hash算法

MD5

MD5:生成hash长度为128位

sha256

Hash:生产hash长度为256位

go语言实现MD5

package main

import (
	"crypto/md5"
	"fmt"
	"io"
)

//哈希运算,使用go包,有两种调用方式
//方式一:
func md5Test1(info []byte) []byte {
	//对大量数据进行哈希运算
	//1、创建一个哈希器
	hasher := md5.New()
	io.WriteString(hasher,"hello")
	io.WriteString(hasher,"world")
	//2、执行Sum操作,得到hash值
	//sum(b),如果b不是nil,那么返回的值为b+hash值
	hash := hasher.Sum(nil)
	return hash
}
//方式二:
func md5Test2(info []byte) []byte {
	hash := md5.Sum(info)
	return hash[:]	//数组转换为切片
}

func main()  {
	hash1 := md5Test1(nil)
	fmt.Printf("hash1:%x\n",hash1)
	hash2 := md5Test1([]byte("hello world"))
	fmt.Printf("hash2:%x\n",hash2)

}

在这里插入图片描述

package main

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

//使用打开文件方式获取
const filename = `E:\学习视频\4、4天掌握GO语言密码学-用实践验证理论视频\day2\03-openssl生成公钥私钥.mp4`
func main(){
	//1、open文件
	file,err := os.Open(filename)
	if err != nil{
		panic(err)
	}
	//2、创建hash
	hasher := sha256.New()
	//3、copy语柄
	length , err := io.Copy(hasher,file)
	if err != nil{
		panic(err)
	}
	fmt.Println("length:",length)
	//4、hsah sum操作
	hash := hasher.Sum(nil)
	fmt.Printf("hash:%x\n",hash)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值