在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度 。(4294967296等于2的32次方)
所有这些完成之后,将a、b、c、d分别加上a、b、c、d 。然后用下一分组数据继续运行算法,最后的输出是a、b、c和d的级联 。
当你按照我上面所说的方法实现md5算法以后,你可以用以下几个信息对你做出来的程序作一个简单的测试,看看程序有没有错误 。
md5 ("") = d41d8cd98f00b204e9800998ecf8427e
md5 ("a") = 0cc175b9c0f1b6a831c399e269772661
md5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
md5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
md5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
md5 ("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f
md5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 57edf4a22be3c955ac49da2e2107b67a
如果你用上面的信息分别对你做的md5算法实例做测试 , 最后得出的结论和标准答案完全一样,那我就要在这里象你道一声祝贺了 。要知道,我的程序在第一次编译成功的时候是没有得出和上面相同的结果的 。
四、MD5的安全性
md5相对md4所作的改进:
1. 增加了第四轮;
2. 每一步均有唯一的加法常数;
3. 为减弱第二轮中函数g的对称性从(xy)|(xz)|(yz)变为(xz)|(y(~z));
4. 第一步加上了上一步的结果,这将引起更快的雪崩效应;
5. 改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;
6. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应 。各轮的位移量互不相同 。
关于现代密码学java源代码和现代密码学难学吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- java代码使用ognl,java代码例子讲解
- 如何引流公司网站,网站 引流
- 安卓艾智驾app,艾智驾安装手机互联服务失败
- python函数len python累加求和
- 怎么做电商视频号教程,电商小视频怎么制作
- 不怎么玩游戏什么显卡适合,不怎么玩游戏什么显卡适合打游戏
- 直播伴侣贴牌,直播伴侣作用
- 利用python任意函数 用python编写一个函数
- u盘怎么设置uefi启动不了,u盘怎么设置uefi启动不了