zoukankan      html  css  js  c++  java
  • 散列算法-SHA

    一种生成信息摘要的算法。主要用于数据一致性和完整性的校验

    SHA算法分很多版本,最大的分类是SHA-1和SHA-2。SHA-2包括很多子版本,SHA-224,SHA-256,SHA-384,SHA-512。

    SHA-1(可破解 http://www.cnbeta.com/articles/tech/587564.htm)

    SHA-1算法可以从明文生成160bit(40个字符)的信息摘要,示例如下

    给定明文:      abcd

    SHA-1摘要:   81FE8BFE87576C3ECB22426F8E57847382917ACF

    SHA-1 与 MD5的主要区别是什么呢?

    1.摘要长度不同

    MD5的摘要的长度128bit,SHA-1摘要长度160bit。多出32bit意味着什么呢?不同明文的碰撞几率降低了2^32 = 324294967296倍。

    2.性能略有差别

    SHA-1生成摘要的性能比MD5略低。

    SHA-2

    SHA-2是一系列SHA算法变体的总称,其中包含如下子版本:

    SHA-256:可以生成长度256bit的信息摘要。

    SHA-224:SHA-256的“阉割版”,可以生成长度224bit的信息摘要。

    SHA-512:可以生成长度512bit的信息摘要。

    SHA-384:SHA-512的“阉割版”,可以生成长度384bit的信息摘要。

    显然,信息摘要越长,发生碰撞的几率就越低,破解的难度就越大。但同时,耗费的性能和占用的空间也就越高。

    如果想要追求安全性,也可以考虑把多种摘要算法结合使用。

    明文:        abcd

    MD5摘要:e2fc714c4727ee9395f324cd2e7f331f

    SHA-256摘要:88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589

    合成摘要:e2fc714c4727ee93209c897823b9217da3e161936f031589

  • 相关阅读:
    UILabel 详解
    didMoveToSuperView 引发的思考
    Source
    设计模式
    Code ReView
    UIApearance
    UINavigationBar
    initWithNibName与viewDidLoad的执行关系以及顺序
    bLock 回调 就是这么简单!
    程序语言小记
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/7718040.html
Copyright © 2011-2022 走看看