Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux监控 > 安全配置 > » 正文

浅谈网站安全之MD5加密

来源: 七尺男儿 分享至:

 MD5加密算法在我们做网站开发的时候用过的很多,首先用户的密码我们每次都是要加密存进数据库。

其实在C#中实现对数据(字符串)的MD5加密是非常简单的。

引用using System.Security.Cryptography;

  1. public string Md5(string str) 
  2.     MD5 md5 = new MD5CryptoServiceProvider(); 
  3.     byte[] data = md5.ComputeHash(UnicodeEncoding.Default.GetBytes(str)); 
  4.     StringBuilder strBuilder = new StringBuilder(); 
  5.     for (int i = 0; i < data.Length; i++) 
  6.     { 
  7.         strBuilder.Append(data[i].ToString("x2")); 
  8.     } 
  9.     return strBuilder.ToString(); 

这样返回的是32位的字符串。

但是我们在查看别人的数据库数据的时候有是会发现PASSWORD是16位的。

这是这样计算的:

md5计算(admin)=2123 2f29 7a57 a5a7 4389 4a0e 4a80 1fc3;

16=7a57 a5a7 4389 4a0e;其实是在32位的加密的基础上取了它的重第9位到24位。即substring(8,16)。

其实还有一个就是我在查看别人数据库的时候发现有40位的(主要是各大破解MD5的网站太多了,MD5加密已经没有那么安全了,所以有些人又变换出来了40位的。其实一看40位的也很简单,变换的不复杂。):

我们一起开看看它是怎么运算的:

40位的:7a57 a5a7 4389 4a0e 4a80 1fc3 4389 4a0e 4a80 1fc3

前面16位:即是MD516位的加密7a57 a5a7 4389 4a0e。

剩下的24位: 4a80 1fc3 4389 4a0e 4a80 1fc3

不难发现:4a80 1fc3=MD532位加密的后8位 + 4389 4a0e=MD516位加密的后8位+4a80 1fc3=MD532位加密的后8位。

所以这核心就是保存了前面16位。有了这16位就可以保证数据的正确性,至于后面的都是迷惑大家用的。其实也可以进行其他各种的变换。如我对它(admin)进行16加密只后把它首位分开放置.然后中间在按照自己的算法放置字符串。产生一个40位的密码。

为什么会这样说呢?

其实现在的SQL注入还是很严重的。万一我们的网站做的出现了注入漏洞的话,被某些HACKER(脚本小孩),拿到了帐号密码之后,一看是40位的。它就开始蒙了。心想这是什么加密,(其实加密的算法有很多哦。)百度之后呵呵抱歉这是你自己想的一个。这样就可以避免了一些威胁。不是吗?

还有就是自己的密码长度格式:在13位左右-有数字,字母,大小写,以及@字符

例如:AiaoqQ@91b91b

这是我的一个密码的规范:在@之前的密码用字母表示第一个和最后一个都大写

@之后都用数字但是出现了8我就替换成b.

也很好记住:xiaoqq我的昵称,918我的生日重复一次。遇到8=b.

呵呵希望这篇文章对某些人有帮助。


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史