码迷,mamicode.com
首页 > 其他好文 > 详细

haslib 模块

时间:2018-08-10 21:26:51      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:bubuko   不可   组合   数据   加密算法   数字   校验   不同   复杂   

一、能够把一个字符串数据类型的变量,转换成一个定长的,密文的字符串。且没一个字符串中的字符都是一个十六进制的数子。

二、对于相同的字符串,无论字符串多长,无论在什么环境下,任何语言中,使用相同的算法得出的结果都是一样的。只要不是相同的字符串,结果就是不同的。

三、常用的两种加密算法

  MD5算法  (不可逆)

  得到的结果是一个32位的字符串,且每个字符串都是一个十六进制的数字。

  效率快,相对简单。

  sha1 算法   (不可逆)

  得到一个40位的字符串,且每个字符串是一个是一个十六进制的数字。

  算法相对复杂。

  技术分享图片

  撞库

  由于MD5,sha1算法不可逆,所以有一批‘有志之士’就将好多的数字字母的组合计算出的密文值,存在一个库中。这样当截获了密文值就可以去库中匹配,如果有相同的,就查他对应的原字符串。

  因此出现了撞库,同时使得这个加密算法相对出现了些风险。

  加盐的MD5算法

  技术分享图片

  动态加盐

  对于一些用户名和密码,因为用户名是唯一的,所以将用户名作为盐,在进行加密计算,这样得出的结果的安全性将会更高。

  技术分享图片

  可以用于文件的一致性校验。

  技术分享图片

  如果文件过大,还可以按字节读取。

  完整的读完一个文件计算的MD5值和分段读完最后的MD5值是一样的。

 

haslib 模块

标签:bubuko   不可   组合   数据   加密算法   数字   校验   不同   复杂   

原文地址:https://www.cnblogs.com/wf123/p/9456898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!