pythonmd5加密原理_MD5加密原理

MD5

加密

C#[ZZ]

http://blog.csdn.net/Ewangsoft/archive/2006/07/22/960980.aspx

1.

来历

MD5

的全称是

message-digest algorithm 5(

信息

-

摘要算法,在

90

年代初由

mit laboratory

for computer science

rsa data security inc

ronald l. rivest

开发出来,

md2

md3

md4

发展而来。

http://www.ietf.org/rfc/rfc1321.txt

,是一份最权威的文档,

ronald l. rivest

1992

8

月向

ieft

提交。

2.

用途

MD5

的作用是对一段信息

(message)

生成信息摘要

(message-digest)

,该摘要对该信息具有

唯一性

,

可以作为数字签名。用于验证文件的有效性

(

是否有丢失或损坏的数据

),

对用户

密码的加密,在哈希函数中计算散列值。

3.

特点

输入一个任意长度的字节串,

生成一个

128

位的整数。

由于算法的某些不可逆特征,

在加密

应用

上有较好的安全性。并且,

MD5

算法的使用不需要支付任何版权费用。

4.

说明

唯一性和不可逆性都不是绝对的,

从理论上分析是一种多对一的关系,

但两个不同的信息产

相同摘要的概率很小。

不可逆是指从输出反推输入所需的运算量和计算时间太大,

使用穷搜

典的方法又需要太多的存储空间。

5.

算法描述

算法输入是一个字节串,每个字节是

8

bit.

算法的执行分为以下几个步骤:

第一步,补位:

MD5

算法先对输入的数据进行补位,

使得数据的长度

(

byte

为单位

)

64

求余的结果是

56

即数据扩展至

LEN=K*64+56

个字节,

K

为整数。

补位方法:补一个

1

,然后补

0

至满足上述要求。相当于补一个

0x80

的字节,再补值

0

的字节。这一步里总共补充的字节数为

0

63

个。

第二步,附加数据长度:

用一个

64

位的整数表示数据的原始长度

(

bit

为单位

)

将这个数字的

8

个字节按低位的在

前,

高位在后的顺序附加在补位后的数据后面。这时,数据被填补后的总长度为:

LEN = K*64+56+8=(K+1)*64 Bytes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值