紧急求助: 一个文件的MD5是什么 意思 怎么求

ProjectDD 2009-06-01 01:24:07
现在我面临的任务是 输入两个文件夹,然后 对其中的文件进行比较 ,不同的要做标记,(比如 做成红色的)就是VS中的团队开发工具中有的那个 功能 !

但文件是否改变 的依据 告知我说是MD5,我现在不知到什么 是MD5 ,也不会求一个文件的MD5... 求,达人帮助! 谢谢。。
...全文
3591 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
格拉 2009-06-01
  • 打赏
  • 举报
回复
这个太容易了,LZ不用紧张
ztenv 2009-06-01
  • 打赏
  • 举报
回复
把文件的内容看成是一个字串,然后经MD5加密,如果有任何的不同,则验证肯定是不同的;
mlliqiushi 2009-06-01
  • 打赏
  • 举报
回复
2楼写的好!~~
ProjectDD 2009-06-01
  • 打赏
  • 举报
回复
百度了下,原来 MD5是 产生数字 指纹用的,对于任何字串,产生一个唯一数字(128位)的数指纹
但却不能在知到数字指纹和算法后反回到原文返回,现在据说中国的王小云已经把它破解了,下一代的密码安全估计2012年可推出,


这些就不扯了,有没有人可以用C#举个小例子说明如何 来对一个指定字符串 进行MD5运算产生一个128位的数字指纹..
cpio 2009-06-01
  • 打赏
  • 举报
回复
是啊,文件也可以,任意内容都可以
InterRonaldo 2009-06-01
  • 打赏
  • 举报
回复
MD5的算法属于标准算法 我做过CRC32的 但是不如MD5加密值精确 意思应该就是根据一个任意文件的数据 也就是字节数组来计算一个出一个很大的整数值来标识这个文件 如果改动了文件的任意部分也能计算出不同的值来 CRC32的算法大概可以检测误差率不到0.01%了 MD5还要高的多 算法网上一大堆 标准都一样 求出来的值就可以当作标识留着比较了
vrhero 2009-06-01
  • 打赏
  • 举报
回复
对文件做哈希获得一个摘要值,文件接收者用相同哈希算法重新计算摘要值与原始摘要值比较,以检测文件在传递过程中没有被修改过...就是这个意思...

算法参见1楼...
缥缈大木头 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cpio 的回复:]
c#获取文件md5值
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace MyHash
{
class md5
{
/// <summary>
/// 实现对一个文件md5的读取,path为文件路径
/// </summary>
/// <param name="path"> </param>
/// <returns> </returns>
public string md5_hash(string path)
{

[/Quote]

学习,好像MD5是加密用的,文件也有这样的东西吗?
cpio 2009-06-01
  • 打赏
  • 举报
回复
c#获取文件md5值
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace MyHash
{
class md5
{
/// <summary>
/// 实现对一个文件md5的读取,path为文件路径
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public string md5_hash(string path)
{
try
{
FileStream get_file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Security.Cryptography.MD5CryptoServiceProvider get_md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash_byte = get_md5.ComputeHash(get_file);
string resule = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
return resule;
}
catch (Exception e)
{
return e.ToString();
}
}
}
}

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Cryptography;

public static void getFileMD5(string path)
{
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] md5byte = md5.ComputeHash(fs);
int i, j;
foreach (byte b in md5byte)
{
i = Convert.ToInt32(b);
j = i >> 4;
Console.Write(Convert.ToString(j, 16));
j = ((i << 4) & 0x00ff) >> 4;
Console.Write(Convert.ToString(j, 16));
}
Console.ReadLine();
}

111,114

社区成员

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

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

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