求C#.net MD5 算法

baibaip 2013-12-25 12:40:52
ASP的 MD5是 一个文件 可.net MD5却是一行代码
    public static String MD5(string password)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
}

这样非常不安全 MD5加密后的字符串 很轻松就会被破解
我也想像ASP那样 MD5 是一个自己写的文件 算法稍微改动一下下 就可以无法破解了
谁有 可否给我一个啊
...全文
330 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y19521 2013-12-26
  • 打赏
  • 举报
回复
md5加密后再把密文md5,多加密几次就可以了,只有你自己记得加了多少次,而且一般加密两次以上就无法破解了
摇曳的风筝 2013-12-26
  • 打赏
  • 举报
回复
MD5不可逆,普通人是无法快速破解的。网上的MD5破解只是收集了常用的密码用MD5加密得到的密文,当你输入一个明文字符之后,网站会自动MD5加密,得到加密的密文与数据库存储的已知明文MD5加密的密文进行对比,由此得到你所加密的明文是什么。
ycg_893 2013-12-26
  • 打赏
  • 举报
回复
你所说的破解并不是真正意义上的还原,即根据算法还原; 网上有很多网站提供MD5值以及原值,但那是预设的,就是将常用的密码、数字的原值以及对应的MD5值存储,然后根据MD5值找到对应的原值,这只是一些常用的,因所有可能的排列组合数据量非常大; 并且很多系统在做密码时,MD5只是基础算法,你可以将MD5的结果值再简单地弄一下(如位置和顺序换一下等),那网上的或者很多现在的MD5库对你来说就是无效的。
PaulyJiang 2013-12-26
  • 打赏
  • 举报
回复
引用 19 楼 yuwenge 的回复:
[quote=引用 16 楼 jiangfling 的回复:] [quote=引用 14 楼 yuwenge 的回复:] [quote=引用 13 楼 jiangfling 的回复:] MD5是不可逆的,无法破解 哥哥 结贴给分吧
MD5是可以“破解”的,只需要一个16的32次方条数据的数据库就行了。[/quote] MD5将任意长度的"字节串"变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。 [/quote] 这是说MD5不能还原出原来的数据,那当然,你不可能用一个32位长的字符串整出一部AV来。 但是当你用Md5作为加密存储验证的时候,我只需要一个可以转换为这个md5的短字符串就可以通过你的验证,这就是所谓的“破解”,所以我的破解是带引号的。也是有条件的。 比如你把用户密码md5加密存储,我即使得到了md5字符串,仍然无法知道用户填写的密码。但是我可以找到匹配这个md5码的另外一个字符串,就可以当做密码登录到你的系统里了。在很大程度上,这个匹配的字符串,正好就是用户填写的密码。[/quote] ok ic thx
卧_槽 2013-12-26
  • 打赏
  • 举报
回复
引用 16 楼 jiangfling 的回复:
[quote=引用 14 楼 yuwenge 的回复:] [quote=引用 13 楼 jiangfling 的回复:] MD5是不可逆的,无法破解 哥哥 结贴给分吧
MD5是可以“破解”的,只需要一个16的32次方条数据的数据库就行了。[/quote] MD5将任意长度的"字节串"变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。 [/quote] 这是说MD5不能还原出原来的数据,那当然,你不可能用一个32位长的字符串整出一部AV来。 但是当你用Md5作为加密存储验证的时候,我只需要一个可以转换为这个md5的短字符串就可以通过你的验证,这就是所谓的“破解”,所以我的破解是带引号的。也是有条件的。 比如你把用户密码md5加密存储,我即使得到了md5字符串,仍然无法知道用户填写的密码。但是我可以找到匹配这个md5码的另外一个字符串,就可以当做密码登录到你的系统里了。在很大程度上,这个匹配的字符串,正好就是用户填写的密码。
jiaoshiyao 2013-12-26
  • 打赏
  • 举报
回复
md5貌似都是收费的- -
PaulyJiang 2013-12-26
  • 打赏
  • 举报
回复
一些黑客破获这种密码的方法是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。 即使假设密码的最大长度为8,同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)....+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。 一般来个双重MD5就没什么问题了
PaulyJiang 2013-12-26
  • 打赏
  • 举报
回复
引用 14 楼 yuwenge 的回复:
[quote=引用 13 楼 jiangfling 的回复:] MD5是不可逆的,无法破解 哥哥 结贴给分吧
MD5是可以“破解”的,只需要一个16的32次方条数据的数据库就行了。[/quote] MD5将任意长度的"字节串"变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
PaulyJiang 2013-12-26
  • 打赏
  • 举报
回复
引用 14 楼 yuwenge 的回复:
[quote=引用 13 楼 jiangfling 的回复:] MD5是不可逆的,无法破解 哥哥 结贴给分吧
MD5是可以“破解”的,只需要一个16的32次方条数据的数据库就行了。[/quote] 我一直以为是不可逆的呢
卧_槽 2013-12-26
  • 打赏
  • 举报
回复
引用 13 楼 jiangfling 的回复:
MD5是不可逆的,无法破解 哥哥 结贴给分吧
MD5是可以“破解”的,只需要一个16的32次方条数据的数据库就行了。
PaulyJiang 2013-12-26
  • 打赏
  • 举报
回复
MD5是不可逆的,无法破解 哥哥 结贴给分吧
CqCoder 2013-12-26
  • 打赏
  • 举报
回复
引用 4 楼 baibaip 的回复:
破解MD5超简单的 搜索“MD5破解,破解MD5,MD5解密” 百度一下 你就知道了 3楼的仁兄 在哪里加自定义字符串啊
孩子 你确定你可以破解MD5加密的字符串???
zxzcxc 2013-12-26
  • 打赏
  • 举报
回复
既然你不相信md5,那就用其他加密方法呗 推荐用blowfish
小猪八Q 2013-12-26
  • 打赏
  • 举报
回复
lz要的是这样的吗?

using System.Security.Cryptography;

public string Encrypt(string strPwd)
{
  MD5 md5=new MD5CryptoServiceProvider();
  byte[] data=System.Text.Encodeing.Default.GetBytes(strPwd);
  byte[] md5data=md5.ComputeHash(data);
  md5.Clear();
  string str="";
for(int i=0;i<md5data.Length-1;i++)
{
  str+=md5data[i].ToString("x").PadLeft(2,'0');
}
return str;
}
xuguv 2013-12-26
  • 打赏
  • 举报
回复
顶LS的,这个方法好。
foxwfb 2013-12-26
  • 打赏
  • 举报
回复
先md5加密一次, 然后再从这里面截取一段字符串再MD5一次,一次不行,再多搞两次。 反正这个是可逆的,只能按自己的方式去生成加密密文,再进行比对。
huwei001982 2013-12-25
  • 打赏
  • 举报
回复
听。。不。。懂。。。 什么叫 md5 是自己写的一个文件?
  • 打赏
  • 举报
回复
引用 4 楼 baibaip 的回复:
破解MD5超简单的 搜索“MD5破解,破解MD5,MD5解密” 百度一下 你就知道了 3楼的仁兄 在哪里加自定义字符串啊
你确定MD5这么渣么,还超简单
公西雒 2013-12-25
  • 打赏
  • 举报
回复
引用 4 楼 baibaip 的回复:
破解MD5超简单的 搜索“MD5破解,破解MD5,MD5解密” 百度一下 你就知道了 3楼的仁兄 在哪里加自定义字符串啊
搞笑
周美文 2013-12-25
  • 打赏
  • 举报
回复
引用 4 楼 baibaip 的回复:
破解MD5超简单的 搜索“MD5破解,破解MD5,MD5解密” 百度一下 你就知道了 3楼的仁兄 在哪里加自定义字符串啊
你知道别人是怎么破解的吗?那都是暴力破解,也就是说有很多机器在计算,把一个值MD5加密后去和你的值进行比较,相同了就认为该值就是密码。
加载更多回复(8)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧