HASH函数编程

HASH函数编程

ID:47429587

大小:218.11 KB

页数:9页

时间:2020-01-11

HASH函数编程_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《HASH函数编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、上机三:HASH函数编程【上机目的】熟悉HASH函数的基本原理和性质,通过编程/开源代码分析了解一种标准HASH算法的运行原理。【上机环境】1、硬件PC机一台。2、系统配置:操作系统windowsXP以上。3、编程语言:C/C++/C#/Java/Python【上机内容及要求】1、MD5算法分析和实现2、使用实例分析备注:可借鉴网上相关算法的开源代码进行编程实现,编程语言不限;除了MD5算法,也可以选取SHA系列HASH算法(或其它任一种标准的HASH算法)进行研究。【上机报告】实验过程:Python遇到Hash,内置的函数库

2、就可以解决,但要是想理解算法与原理。还是要走一边流程。Pythonhash库的应用importhashlibpsw="a"md5=hashlib.md5()#初始化摘要对象md5.update(psw.encode('utf-8'))#使用md5算法计算print(md5.hexdigest())#输出16进制字符串‘a’的Hash值对应‘0cc175b9c0f1b6a831c399e269772661’让a=‘bujunjie’我的名字hash看来老师让我们分析分析源码吗?要分析源码首先搞一下。什么是HASH?摘要算法是将信

3、息压缩提取以作为数据指纹的算法,我们下载东西要确认下的东西有没有下错下漏常用这种算法来做验证,在密码学中这是很多算法的基础具体摘要算法是怎么样的?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)还有一种应用场景是用来存储用户的密码,大明文密码存储在数据库里很不安全,之前爆出很多知名网站将用户密码以明文存储,导致信息泄露.可以通过摘要算法给密码加个密存储进去.这样要破解密码除了要知道密码本身,还得知道生成最终摘要文本的算法才可以.也就相对安全多了。MD5是输

4、入不定长度信息,输出固定长度128-bits的算法。经过程序流程,生成四个32位数据,最后联合起来成为一个128-bits散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算。得出结果。{displaystyleoplus,wedge,vee,eg} -----------------------------摘自wiki百科//Note:Allvariablesareunsigned32bitsandwrapmodulo2^32whencalculatingvarint[64]r,k//rspecifie

5、stheper-roundshiftamountsr[0..15]:={7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22}r[16..31]:={5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20}r[32..47]:={4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23}r[48..63]:={6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21}//Usebinaryintegerpart

6、ofthesinesofintegersasconstants:forifrom0to63k[i]:=floor(abs(sin(i+1))×2^32)//Initializevariables:varinth0:=0x67452301varinth1:=0xEFCDAB89varinth2:=0x98BADCFEvarinth3:=0x10325476//Pre-processing:append"1"bittomessageappend"0"bitsuntilmessagelengthinbits≡448(mod512)a

7、ppendbitlengthofmessageas64-bitlittle-endianintegertomessage//Processthemessageinsuccessive512-bitchunks:foreach512-bitchunkofmessagebreakchunkintosixteen32-bitlittle-endianwordsw[i],0≤i≤15//Initializehashvalueforthischunk:varinta:=h0varintb:=h1varintc:=h2varintd:=h

8、3//Mainloop:forifrom0to63if0≤i≤15thenf:=(bandc)or((notb)andd)g:=ielseif16≤i≤31f:=(dandb)or((notd)andc)g:=(5×i+1)mod16elseif32≤i≤47f:=bxorc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。