当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: Network Working Group&
 

 

 ·一次代码重构记录    »显示摘要«
    摘要:经过一个学期的学习。陆续实现了各种结构。近日查看这些实现代码发现由于当时水平有限,代码中不安全处很多、于是决定重构代码, 第一步。尽量使用const修饰符,以防数据被意外修改。 1。const 函数形参。 形如将 void fun ( char* )改为 void fun ( const chat* ) 使得函数能接受无左值实参。如函数实参,表达实参等等2。const 返回值, 形如将 bool fun ( void ) 改为 const bool fun......
    摘要:[内容提要] 本文详细介绍了java数据库编程的jdbc api及java.sql包。并以 java 技术设计、开发、实践的一个数据库应用管理系统案例为模板,结合 java2 平台程序进行说明 java 面向对象的语言的开发思路、语言特色、安全机制以及案例的具体实现步骤、方法及过程等。相信通过本文的介绍,广大的开发者会领略 java 面向对象语言的风采,深深体会 java 的开发思想。从而为广大用户提供另外一种高效的、前瞻性的管理信息系统及live int......


RFC1312 中文版

组织:中国互动出版网(http://www.china-pub.com/)

rfc文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) 【相关文章:Java 库的建立方法及其实例

【扩展阅读:ATL布幔之下的秘密(2)

e-mail:ouyang@china-pub.com 【扩展信息:多线程设计要点

译者:()

译文发布时间:2001-11-7

版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须

保留本文档的翻译及版权信息。

 

network working group                                          r. rivest

request for comments: 1321           mit laboratory for computer science

                                             and rsa data security, inc.

                                                              april 1992

md5 报文摘要算法

(rfc1321——the md5 message-digest algorithm)

本文地位

本文并非指定一个internet标准,而是向互联网提供信息,本文可以任意传播,不受限制。

致谢

don coppersmith, burt kaliski, ralph merkle,david chaum, 与noam nisan向本文提供极大的帮

助,在此本人表示忠心的感谢。

目录

1 执行简介 1

2 术语与符号 1

3 md5算法描述 2

4 摘要 4

5 md4与md5的区别 4

6 参考文献 4

7 附录a-参考应用程序 4

8 安全事项 18

9 作者地址 18

1 执行简介

本文描述了md5报文摘要算法,此算法将对输入的任意长度的信息进行计算,产生一个128位

长度的“指纹”或“报文摘要”,假定两个不同的文件产生相同的报文摘要或由给定的报文摘要产生

原始信息在计算上是行不通的。md5算法适合用在数据签名应用中,在此应用中,一个大的文件必

须在类似rsa算法的公用密钥系统中用私人密钥加密前被“压缩”在一种安全模式下。

md5算法能在32位机器上能以很快的速度运行。另外,md5算法不需要任何大型的置换列表。

此算法编码很简洁。md5 算法是md4报文摘要算法的扩展。md5算法稍慢于md4算法,但是在设

计上比md4算法更加“保守”。设计md5是因为md4算法被采用的速度太快,以至于还无法证明

它的正确性,因为md4算法速度非常快,它处在遭受成功秘密攻击的“边缘”。md5后退了一步,

它舍弃了一些速度以求更好的安全性。它集中了不同的评论家提出的建议,并采取了一些附加的优化

措施。它被放在公共的地方以求公众的评论意见,它可能当作一个标准被采纳。

作为基于osi的应用,md5的对象标识符是:

md5 object identifier ::=

iso(1) member-body(2) us(840) rsadsi(113549) digestalgorithm(2) 5}

   在x.509类型algorithmidentifier [3]中,md5算法参数应该包括null类型。

2 术语与符号

本文中一个“字”是32位,一个“字节”是8位。一系列位串可看成是一系列字节的普通形式,

其中的连续的8位看成一个字节,高位在前,同理一系列字节串可看成是一系列32位的字,其中每

个连续的4个字节当作一个字,地位在前。

我们定义x_i代表“x减去i".如果下划线左边的是一个表达式,则用括号括住,如:

x_{i+1}。同样我们用^代表求幂,这样x^i则代表x的i次幂。

符号“+”代表字的加,x <<< s代表32位的值x循环左移s位,not(x)代表x的按位

补运算,x v y 表示x与y的按位或运算,xxory代表x与y的按位异或运算,xy代表

x与y的按位与运算。

3 md5算法描述

我们假设有一个b位长度的输入信号,希望产生它的报文摘要,此处b是一个非负整数,b也可

能是0,不一定必须是8的整数倍,它可能是任意大的长度。我们设想信号的比特流如下所示:

     m_0 m_1 ... m_{b-1}

下面的5步计算信息的报文摘要。

(1) 补位

md5算法是对输入的数据进行补位,使得如果数据位长度len对512求余的结果是448。即数

据扩展至k*512+448位。即k*64+56个字节,k为整数。补位操作始终要执行,即使数据长度len

对512求余的结果已是448。

具体补位操作:补一个1,然后补0至满足上述要求。总共最少要补一位,最多补512位。

(2) 补数据长度

 用一个64位的数字表示数据的原始长度b,把b用两个32位数表示。那么只取b的低64位。

当遇到b大于2^64这种极少遇到的情况时,这时,数据就被填补成长度为512位的倍数。也就是说,

此时的数据长度是16个字(32位)的整数倍数。用m[0 ... n-1]表示此时的数据,其中的n是16

的倍数。

(3) 初始化md缓冲器

 用一个四个字的缓冲器(a,b,c,d)来计算报文摘要,a,b,c,d分别是32位的寄存器,初

始化使用的是十六进制表示的数字

      a=0x01234567


...   下一页
    摘要:在web开发中做界面一般都是有美工做的,但是如果要做成类似windows一样的界面,就比较麻烦,前些日子我在网上找到一个免费的js,它类似与一个做控件的工具,有button,menu,toolbar等常用的控件,可以帮助web开发者画界面。它的使用很简单,如加一个按钮,<div class=tbbutton img class=tbicon src="bgcolor.gif" width=23> </div>,只......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE