毕业设计论文 外文文献翻译 信息管理与信息系统网上商城的设计与实现 中英文对照

上传人:r****d 文档编号:94994262 上传时间:2022-05-23 格式:DOC 页数:13 大小:48.50KB
返回 下载 相关 举报
毕业设计论文 外文文献翻译 信息管理与信息系统网上商城的设计与实现 中英文对照_第1页
第1页 / 共13页
毕业设计论文 外文文献翻译 信息管理与信息系统网上商城的设计与实现 中英文对照_第2页
第2页 / 共13页
毕业设计论文 外文文献翻译 信息管理与信息系统网上商城的设计与实现 中英文对照_第3页
第3页 / 共13页
点击查看更多>>
资源描述
毕业设计论文外 文 翻 译 题 目 网上商城的设计与实现 专 业 信息管理与信息系统 班 级 08信管 学 生 学 号 指导教师 2021 年MD5Message Digest Algorithm MD5 (message digest algorithm called the fifth edition of the Chinese) is widely used in the field of computer security, a hash function, used to provide message integrity protectionBackgroundThe full name of the MD5 Message-Digest Algorithm 5, in the 20th century, the early 1990s by the MIT Laboratory of Computer Science and RSA Data Security Inc invention, the MD2, MD4 and developed from MD3. Message-Digest refers byte string (Message) Hash transform, is an arbitrary length of the string of bytes must transform into a long integer Please note that this is byte string rather than string Word is that this transformation only with the byte value, and character set or encoding irrelevant. MD5 arbitrary length of the byte string transform into a 128-bit integers large, and it is not a reversible string transform algorithm, in other words, even if you see the source code and algorithm description, and we can not one of the MD5 Transform back to the original value of the string, from the mathematical principle, it is because the original strings are infinitely many, it does not exist as a function of anti-math functions. MD5 widely used in data encryption technology in many sites, users MD5 the password is stored in the database of. User registration, the process of user input into MD5 value, and then go in the database and the preservation of MD5 value of comparison, the procedure itself does not know what is the users password. Some hackers cracked the password is a method known as running dictionary method. There were two ways to get a dictionary. A collection of day-to-day and is used as the password string table. Another method is to generate the permutations and combinations, use of these procedures MD5 dictionary of the MD5 value, and then reuse objectives of the MD5 value in the dictionary search. Assumption that the maximum password length of 8 and password can only be letters and numbers, a total of 26 +26 +10 = 62 characters from the permutations and combinations of several dictionaries is P (62,1) + P (62,2) + P (62,8), it also has been an astronomical figure, this dictionary stored on the disk needs TB-class group, and this means there is a premise that can be password goal MD5 value of the circumstances we can.MD5 AlgorithmIt is based on an increase in the MD4 safe - tape (safety-belts) concept. Although MD5 is slightly slower than MD4, but more secure. Clearly this algorithm and the MD4 design consists of four slightly different steps. In the MD5 algorithm, Information - Summary of the size and fill the necessary conditions and MD4 identical. Den boer and Bosselaers MD5 algorithm has been found that the false conflict (pseudo-collisions), but otherwise no other was found encrypted result.Van oorschot and Wiener have considered a violent search for conflict in the hash function (brute-force hash function), and they speculated was designed specifically to search for a conflict MD5 machine (this machine in 1994, the manufacturing cost of about a million dollars) on average every 24 days to find a conflict. But the single from 1991 to 2001, these 10 years, actually no alternative MD6 MD5 algorithm or whatever name called this new algorithm, we can see that this flaw does not affect too much the security of MD5. All of these are not enough to be above the MD5 of the problems in practical application.Also, the use of the MD5 algorithm does not need to pay any royalties, so in the case of general (non-top-secret applications. But even within the field of application in the top-secret, MD5 may well be a very good intermediate technology), MD5 how should be considered as very safe.MD5 hash function is used in the application of computer networks more irreversible encryption algorithm invented by RSA, MD5 algorithm and by the National Institute of Standards and Technologys Secure Hash Algorithm proposed SHA.Here are the realization of MD5 encryption algorithm principle. (1) MD5 algorithm is on the importation of data fill the seats, making data length of 512 LEN seeking is the result of more than 448, i.e., the data extended to 512 +448 * K-bytes, K integer. Specific-operation is completed : fill a 1, then a 0-to meet those requirements. (2) Additional data length: with a 64-bit digital data that the original length of B, the B 32 with two median said. Then, was to fill data for the growth of the multiples of 512. (3) MD5 initialization parameters .4 32-bit integers (a, b, c, d) for the calculation of information summary initialization using the hexadecimal number. A = & H67452301 B = & HEFCDAB89 C = & H98BADCFE D = & H10325476 (4) Processing-manipulation functions X, Y, Z for the 32-bit integer. These functions is so designed: If X, Y and Z is the counterpart of an independent and uniform, then the results of each one also should be independent and uniform. Private Runction md5_F (x, y, z) Md5_F = (x And y) Or (Not x) And z) End Function Private Runction md5_G (x, y, z) Md5_G = (x And z) Or (Not z) And y) End Function Private Runction md5_H (x, y, z) Md5_H = (x Xor y Xor z) End Function Private Runction md5_I (x, y, z) Md5_I = (y Xor (xOr (Not z) End Function (5) major transformation process. Entered the circle algorithm, the number of the news cycle in the news division 512 the number of first above a, b, c, d this four variables were copied to the other four variables AA, BB, CC, DD in to . has four main cycle, each round was very similar, each carried out 16 operations, each operating on a, b, c, d the four variables in the three operations for a nonlinear function, and then the results will be add the four variables. ring right then transfer the results of a volatile few, and add a, b, c, d, or in one last, a result of replacement of the a, b, c or d in one . MD5 encryption rounds of displacement of another. From the security perspective, the MD5 output 128, the use of pure search for a strong attack to be Hash value of the information for the calculation of the difficulty of 2128, with per second Test 1000000000 computer information takes 1.07 * 1022. birthday if they attack, find the same information Hash value of the two tests required 264 information per second Test 1 with 000 million computers to news When 585 years. MD5 encryption extremely complex, this section only briefly principle and method for readers to do preliminary understanding friend.MD5 implementation of a specific/* * md5 - compute and check MD5 message digest. * this version only can calculate the char string. * * MD5 (Message-Digest algorithm 5) is a widely used, partially * insecure cryptographic hash function with a 128-bit hash value. * * Author: redraiment * Date: Aug 27, 2021 * Version: */ #include #include #include #include #define SINGLE_ONE_BIT 0x80 #define BLOCK_SIZE 512 #define MOD_SIZE 448 #define APP_SIZE 64 #define BITS 8 / MD5 Chaining Variable #define A 0x67452301UL #define B 0xEFCDAB89UL #define C 0x98BADCFEUL #define D 0x10325476UL / Creating own types #ifdef UINT64 # undef UINT64 #endif #ifdef UINT32 # undef UINT32 #endif typedef unsigned long long UINT64; typedef unsigned long UINT32; typedef unsigned char UINT8; typedef struct char * message; UINT64 length; STRING; const UINT32 X42 = 0, 1, 1, 5, 5, 3, 0, 7; / Constants for MD5 transform routine. const UINT32 S44 = 7, 12, 17, 22 , 5, 9, 14, 20 , 4, 11, 16, 23 , 6, 10, 15, 21 ; / F, G, H and I are basic MD5 functions. UINT32 F( UINT32 X, UINT32 Y, UINT32 Z ) return ( X & Y ) | ( X & Z ); UINT32 G( UINT32 X, UINT32 Y, UINT32 Z ) return ( X & Z ) | ( Y & Z ); UINT32 H( UINT32 X, UINT32 Y, UINT32 Z ) return X Y Z; UINT32 I( UINT32 X, UINT32 Y, UINT32 Z ) return Y ( X | Z ); / rotates x left s bits. UINT32 rotate_left( UINT32 x, UINT32 s ) return ( x ( 32 - s ) ); / Pre-processin UINT32 count_padding_bits ( UINT32 length ) UINT32 div = length * BITS / BLOCK_SIZE; UINT32 mod = length * BITS % BLOCK_SIZE; UINT32 c_bits; if ( mod = 0 ) c_bits = MOD_SIZE; else c_bits = ( MOD_SIZE + BLOCK_SIZE - mod ) % BLOCK_SIZE; return c_bits / BITS; STRING append_padding_bits ( char * argv ) UINT32 msg_length = strlen ( argv ); UINT32 bit_length = count_padding_bits ( msg_length ); UINT64 app_length = msg_length * BITS; STRING string; string.message = (char *)malloc(msg_length + bit_length + APP_SIZE / BITS); / Save message strncpy ( string.message, argv, msg_length ); / Pad out to mod 64. memset ( string.message + msg_length, 0, bit_length ); string.message msg_length = SINGLE_ONE_BIT; / Append length (before padding). memmove ( string.message + msg_length + bit_length, (char *)&app_length, sizeof( UINT64 ) ); string.length = msg_length + bit_length + sizeof( UINT64 ); return string; int main ( int argc, char *argv ) STRING string; UINT32 w16; UINT32 chain4; UINT32 state4; UINT8 r16; UINT32 ( *auxi 4 )( UINT32, UINT32, UINT32 ) = F, G, H, I ; int roundIdx; int argIdx; int sIdx; int wIdx; int i; int j; if ( argc 2 ) fprintf ( stderr, usage: %s string .n, argv 0 ); return EXIT_FAILURE; for ( argIdx = 1; argIdx argc; argIdx+ ) string = append_padding_bits ( argv argIdx ); / MD5 initialization. chain0 = A; chain1 = B; chain2 = C; chain3 = D; for ( j = 0; j string.length; j += BLOCK_SIZE / BITS) memmove ( (char *)w, string.message + j, BLOCK_SIZE / BITS ); memmove ( state, chain, sizeof(chain) ); for ( roundIdx = 0; roundIdx 4; roundIdx+ ) wIdx = X roundIdx 0 ; sIdx = 0; for ( i = 0; i 16; i+ ) / FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. / Rotation is separate from addition to prevent recomputation. statesIdx = state (sIdx + 1) % 4 + rotate_left ( statesIdx + ( *auxi roundIdx ) ( state(sIdx+1) % 4, state(sIdx+2) % 4, state(sIdx+3) % 4) + w wIdx + (UINT32)floor( (1ULL 32) * fabs(sin( roundIdx * 16 + i + 1 ) ), S roundIdx i % 4 ); sIdx = ( sIdx + 3 ) % 4; wIdx = ( wIdx + X roundIdx 1 ) & 0xF; chain 0 += state 0 ; chain 1 += state 1 ; chain 2 += state 2 ; chain 3 += state 3 ; memmove ( r + 0, (char *)&chain0, sizeof(UINT32) ); memmove ( r + 4, (char *)&chain1, sizeof(UINT32) ); memmove ( r + 8, (char *)&chain2, sizeof(UINT32) ); memmove ( r + 12, (char *)&chain3, sizeof(UINT32) ); for ( i = 0; i 16; i+ ) printf ( %02x, ri ); putchar ( n ); return EXIT_SUCCESS; / * The above program can be a support in any ANSI C compilers compile * / / * direct copy and paste, delete the extra spaces, and adjust the format, otherwise there may be compilation errors * / / * compile in linux , to add link library, a command such as: gcc-o md5 md5.c-lm * /MD5 SecurityAlthough the two texts may be equal to MD5, but the text is not necessarily just another fake on the content and targeted the same, so MD5 can be cracked, and the contents of the documents authenticity issues will not have much involvement, but the password to If the password is not necessarily the A and B of the MD5 password is equal, then if a persons password is A, then B login password hacking his account, directly constitute hacking中文译文MD5Message Digest Algorithm MD5中文名为消息摘要算法第五版为计算机平安领域广泛使用的一种散列函数,用以提供消息的完整性保护。背景MD5的全称是Message-Digest Algorithm 5,在20世纪90年代初由MIT的计算机科学实验室和RSA Data Security Inc创造,经MD2,MD3和MD4开展而来.Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数.请注意,这里是字节串,而不是字符串这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关.MD5将任意长度的字节串变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上来说,是因为原始的字符串有无穷多个,这有点像不存在反函数的数学函数.MD5广泛应用于数据加密技术上.在很多网站中,用户的密码是以MD5的方式保存在数据库的.用户登陆的时候,程序把用户输入计算成MD5的值,然后再去和数据库中保存的MD5值进行比拟,而程序本身并不知道用户的密码是什么.一些黑客破获这种密码的方法是一种被称为跑字典的方法.有两种方法得到字典.一种是日常搜集而用做密码的字符串表.另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索.假设密码的最大长度为8,同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数那么是P(62,1)+P(62,2).+P(62,8),那也已经是一个天文数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标的密码MD5值的情况下才可以.MD5算法它在MD4的根底上增加了平安-带子safety-belts的概念。虽然MD5比MD4稍微慢一些,但却更为平安。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突pseudo-collisions,但除此之外就没有其他被发现的加密后结果了。 Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数brute-force hash function,而且他们猜想一个被设计专门用来搜索MD5冲突的机器这台机器在1994年的制造本钱大约是一百万美元可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的平安性。上面所有这些都缺乏以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术,MD5怎么都应该算得上是非常平安的了。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司创造的MD5算法和由美国国家技术标准研究所建议的平安散列算法SHA。下面介绍MD5加密算法的实现原理.1)MD5算法是对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448,即数据扩展至K*512+448位个字节,K为整数.具体补位操作是:补一个1,然后补一个0至满足上述要求.2)补数据长度:用一个64位的数字表示数据的原始长度B,把B用两32位数表示.这时,数据就被填补成长度为512位的倍数.3)初始化MD5参数.4个32位整数(a,b,c,d)用来计算信息摘要,初始化使用的是十六进制表示的数字.a=&H67452301 b=&HEFCDAB89 c=&H98BADCFE d=&H103254764)处理位操作函数X,Y,Z为32位整数.这些函数是这样设计的:如果X,Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的. Private Runction md5_F(x,y,z) Md5_F=(x And y)Or(Not x) And z) End Function Private Runction md5_G(x,y,z) Md5_G=(x And z)Or(Not z) And y) End Function Private Runction md5_H(x,y,z) Md5_H=(x Xor y Xor z) End Function Private Runction md5_I(x,y,z) Md5_I=( y Xor(xOr(Not z) End Function5)主要变换过程.开始进入算法主循环,循环的次数是消息中512位消息分组的数目.先将上面a,b,c,d这4个变量分别复制到另外4个变量AA,BB,CC,DD中去.主循环有4轮,每轮很相似,每轮进行16次操作,每次操作对a,b,c,d这4个变量中的3个作一次非线性函数运算,然后将所得结果加上第4个变量.再将所得结果向右环移一个不定的数,并加上a,b,c,或d中之一.最后用该结果取代a,b,c或d中之一.MD5加密各轮的位移量互不相同.从平安的角度讲,MD5的输出为128位,假设采用纯强力攻击寻找一个具有给定Hash值的消息的计算困难度为2128,用每秒可试验1 000 000 000个消息的计算机需时1.07*1022年.假设采用生日攻击法,寻找有相同Hash值的两个消息需要试验264个消息,用每秒可试验1 000 000 000个消息的计算机需时585年.MD5的加密方式极其复杂,本节只是简单介绍原理和方法,以供读者朋友做初步的了解.具体的一个MD5实现 略MD5平安性虽然两个文本的MD5可能会相等,但是不一定另外的文本内容恰好就与针对性伪造的内容一模一样,所以MD5能被破解,与文件内容真实性问题不会有太大的牵连,但是密码就不一定了如果密码A与密码B的MD5相等,那么如果有一个人的密码是A,那么黑客用密码B登陆他的帐户,直接构成盗号.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!