美文网首页
散列/哈希算法

散列/哈希算法

作者: 悟剑声 | 来源:发表于2019-06-22 12:34 被阅读0次

    文档

    算法分析基于 RFC 3174

    Request For Comments (RFC),所有关于Internet 的正式标准都是以RFC(Request for Comment )文档出版。需要注意的是,还有大量的RFC文档都不是正式的标准,出版目的都是为了提供信息。
    由互联网协会(Internet Society,简称ISOC)赞助发行,会交到互联网工程工作小组(IETF)和互联网结构委员会(IAB)。文档可由网站 https://www.ietf.org/ 下载。

    SHA1 描述

    全称为 Secure Hash Algorithm 1(安全散列算法1)。是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。1993年 发布 SHA0,1995年发布了SHA1。其设计原理相似于MIT教授 Ronald L. Rivest 所设计的密码学散列算法 MD4 和 MD5。
      SHA1 可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。

    SHA比较

    SHA实际上是一系列算法的统称,分别包括:SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。

    类别 消息长度 分组长度 计算字长 计算步骤 消息摘要长度
    SHA-1 小于2^64位 512 32 80 160
    SHA-224 小于2^64位 512 32 64 224
    SHA-256 小于2^64位 512 32 64 256
    SHA-384 小于2^128位 1024 64 80 384
    SHA-512 小于2^128位 1024 64 80 512

    golang SHA1应用

    package main
    
    import (
        "crypto/sha1"
        "fmt"
    )
    
    func main() {
        s := "1"
        h := sha1.New()
        h.Write([]byte(s))
        bs := h.Sum(nil)
        fmt.Println(s)
        fmt.Printf("%x\n", bs)
    }
    

    参考

    相关文章

      网友评论

          本文标题:散列/哈希算法

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