美文网首页
非对称加密MAC

非对称加密MAC

作者: 够浪你大哥 | 来源:发表于2019-01-18 11:14 被阅读0次
    package main
    
    import (
        "crypto/hmac"
        "crypto/sha256"
        "fmt"
    )
    
    //消息认证码简称MAC
    //是一种与秘钥相关联的单向散列函数
    //创建消息认证码
    func CreatMAC(src,key []byte)[]byte  {
        //创建一个消息认证器
        hash := hmac.New(sha256.New, key)
        //把数据写入消息认证器
        hash.Write(src)
        //调用sum方法获得加密数据
        sum := hash.Sum(nil)
        return sum
    }
    
    //进行消息对比
    func VerifyMAC(src1, key, mac []byte) bool {
        //根据收到的数据,使用相同的算法,得到本地消息认证码
        bytes := CreatMAC(src1, key)
        //调用对比函数,进行数据对比,比较连个MAC是否相同,确保不会泄露数据信息
        equal := hmac.Equal(bytes, src1)//返回值为true或者false
        return equal
    
    }
    
    func main() {
    
        src := []byte("干就完了,没毛病")
        src1 := []byte("干就完了,没毛病!")
        //创建哈希秘钥
        key := []byte("sheibufu")
        //生成消息认证码
        mac := CreatMAC(src, key)
        fmt.Printf("Mac1 :%x\n",mac)
    
        //进行对比
        verifyMAC := VerifyMAC(src1, key, mac)
        fmt.Printf("Verify:%v\n",verifyMAC)
    }

    相关文章

      网友评论

          本文标题:非对称加密MAC

          本文链接:https://www.haomeiwen.com/subject/qxagdqtx.html