MD5,sha1,sha256分别输出多少位啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5,sha1,sha256分别输出多少位啊?相关的知识,希望对你有一定的参考价值。

_

MD5输出128位、SHA1输出160位、SHA256输出256位。

1、MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

2、SHA1安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 里面定义的数字签名算法。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。

3、sha256哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。SHA256 算法的哈希值大小为 256 位。

扩展资料:

MD5应用:

1、一致性验证

MD5的典型应用是对一段信息产生信息摘要,以防止被篡改。具体来说文件的MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。

比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。

2、数字签名

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。

例子:将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后可以传播这个文件给,如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。

如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

3、安全访问认证

MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。

当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。

即使暴露源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。

参考资料来源:百度百科-MD5

参考资料来源:百度百科-SHA1

参考资料来源:百度百科-sha256

参考技术A

MD5输出128bit、SHA1输出160bit、SHA256输出256bit,

1、MD5消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特设计,于1992年公开,用以取代MD4算法。

2、SHA1安全哈希算法主要适用于数字签名标准里面定义的数字签名算法。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。

3、哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。SHA256 算法的哈希值大小为 256 位。

扩展资料:

MD5算法步骤

1、附加填充位

首先对输入的报文进行填位补充,使填充后的数据长度模512后余448.如果数据长度正好模512余448,则需增加512个填充位,也就是说填充的个数为1~512位.填充位第一个位为1,其余全部为0;

2、补足长度

将数据长度表示为二进制,如果长度超过64位,则截取其低64位;如果长度不足64位,则在其高位补0.将这个64位的报文长度补在经过填充的报文后面,使得最后的数据为512位的整数倍;

3、初始化MD缓存器

MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果.该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为:

A : 01 23 45 67;

B: 89 ab cd ef;

C: fe dc ba 98;

D: 76 54 32 10;

4、处理数据段

首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理.对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I.每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。

参考资料:百度百科-MD5

参考资料:百度百科-SHA1

参考资料:百度百科-sha256

参考技术B MD5输出128bit
SHA1输出160bit
SHA256输出256bit
另外还有SHA244,SHA512
分别输出244bit,512bit本回答被提问者采纳
参考技术C

MD5输出128bit、SHA1输出160bit、SHA256输出256bit

    MD5释义:即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

    MD5作用:让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

    sha1释义:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 

    sha1特点:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要,(但会有1x10 ^ 48分之一的机率出现相同的消息摘要,一般使用时忽略)。

    sha256释义:哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。SHA256算法的哈希值大小为 256 位。

    sha256特点:作表示大量数据的固定大小。

PHP 之sha256 sha512封装

/*
PHP sha256 sha512目前(PHP 7.1)没有内置的函数来计算,sha1() sha1_file() md5() md5_file()分别可以用来计算字符串和文件的sha1散列值和md5散列值,当前最新版本PHP 7.1 sha256() sha256_file() sha512() sha512_file()这样的函数也没有。SHA-2是SHA-224、SHA-256、SHA-384,和SHA-512的合称。
PHP 计算sha256 sha512可以使用hash()函数实现,计算文件的sha256 sha512则可以使用hash_file()实现。
hash($algo , $data, $rawOutput);
hash_file($algo , $filepath, $rawOutput);
其中$algo是算法,可以是sha256, sha512等值,支持的算法可以使用hash_algos()查看,该函数返回所有支持的算法。
$data是需要计算hash值的字符串,$filepath是需要计算hash值的文件名,可以是相对路径也可以是绝对路径。
$rawOutput是一个可选的布尔值参数,如果为true,则返回二进制数据,如果为false则返回字符串,默认值为false.
我们可以封装自定义函数来实现PHP 计算sha256 sha512以及其他类型的hash值。
以下代码实现PHP sha256() sha256_file() sha512() sha512_file()
 */

/*
 * 以下代码实现PHP sha256() sha256_file() sha512() sha512_file() PHP 5.1.2+完美兼容
 * @param string $data 要计算散列值的字符串
 * @param boolean $rawOutput 为true时返回原始二进制数据,否则返回字符串
 * @param string file 要计算散列值的文件名,可以是单独的文件名,也可以包含路径,绝对路径相对路径都可以
 * @return boolean | string 参数无效或者文件不存在或者文件不可读时返回false,计算成功则返回对应的散列值
 * @notes 使用示例 sha256(‘www.wuxiancheng.cn‘) sha512(‘www.wuxiancheng.cn‘) sha256_file(‘index.php‘) sha512_file(‘index.php‘)
*/
/* PHP sha256() */
function sha256($data, $rawOutput = false)
{
    if (!is_scalar($data)) {
        return false;
    }
    $data = (string)$data;
    $rawOutput = !!$rawOutput;
    return hash(sha256, $data, $rawOutput);
}

/* PHP sha256_file() */
function sha256_file($file, $rawOutput = false)
{
    if (!is_scalar($file)) {
        return false;
    }
    $file = (string)$file;
    if (!is_file($file) || !is_readable($file)) {
        return false;
    }
    $rawOutput = !!$rawOutput;
    return hash_file(sha256, $file, $rawOutput);
}

/* PHP sha512() */
function sha512($data, $rawOutput = false)
{
    if (!is_scalar($data)) {
        return false;
    }
    $data = (string)$data;
    $rawOutput = !!$rawOutput;
    return hash(sha512, $data, $rawOutput);
}

/* PHP sha512_file()*/
function sha512_file($file, $rawOutput = false)
{
    if (!is_scalar($file)) {
        return false;
    }
    $file = (string)$file;
    if (!is_file($file) || !is_readable($file)) {
        return false;
    }
    $rawOutput = !!$rawOutput;
    return hash_file(sha512, $file, $rawOutput);
}

 

以上是关于MD5,sha1,sha256分别输出多少位啊?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 之sha256 sha512封装

PHP 之sha256 sha512封装

openssl evp 哈希算法(md5,sha1,sha256)

windows 查看文件 MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512码

用PowerShell的命令行检查文件的校验MD5 SHA1 SHA256

SHA1 vs md5 vs SHA256:哪个用于 PHP 登录?