根据网络url获取文件md5值 java

本文介绍了一种通过Java代码实现从指定URL下载图片并计算其MD5值的方法。该方法首先建立HTTP连接,设置超时时间和请求头,然后读取图片数据流并使用DigestUtils计算MD5值。
private String md5ByUrl(String imgUrl){
        String md5 = "";
        InputStream inputStream = null;
        try {
            //url路径
            URL url=new URL(imgUrl);
            //获取连接
            HttpURLConnection connection=(HttpURLConnection)url.openConnection();
            connection.setConnectTimeout(3*1000);
            //设置请求头
            connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36");
            inputStream = connection.getInputStream();
            //DigestUtils为org.apache.commons.codec.digest.DigestUtils下的类
            md5 = DigestUtils.md5Hex(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        } finally{
            try {
                if (inputStream != null) {
                    //关闭流
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return  md5;
    }

 

转载自 

https://blog.youkuaiyun.com/zhengsaisai/article/details/108319918

为了计算文件MD5 哈希,可以使用不同的编程语言和方法来实现。以下是几种常见的实现方式: ### Java 实现 在 Java 中,可以使用 `FileUtils.downLoadFromUrl` 方法从网络下载文件内容,然后通过 `DigestUtils.md5DigestAsHex` 方法计算MD5 校验: ```java try { byte[] file = FileUtils.downLoadFromUrl("http://pic.962.net/up/2018-1/2018191570320420.jpg"); System.out.println(DigestUtils.md5DigestAsHex(file)); } catch (IOException e) { e.printStackTrace(); } ``` 上述代码中,`FileUtils.downLoadFromUrl` 用于下载文件内容,而 `DigestUtils.md5DigestAsHex` 是 Apache Commons Codec 提供的方法,用于将字节数组转换为 MD5 哈希的十六进制字符串表示[^1]。 ### VB.NET 实现 在 VB.NET 中,可以通过以下代码计算文件MD5 : ```vb Private Function getFileMd5Hash(ByVal filePath As String) As String Dim md5Hasher As MD5 = MD5.Create() Dim strMD5 As String = String.Empty Dim originalDate As Byte() = My.Computer.FileSystem.ReadAllBytes(filePath) Dim data As Byte() = md5Hasher.ComputeHash(originalDate) Dim sBuilder As New StringBuilder() Dim i As Integer For i = 0 To data.Length - 1 sBuilder.Append(data(i).ToString("x2")) Next i strMD5 = sBuilder.ToString md5Hasher = Nothing sBuilder = Nothing originalDate = Nothing data = Nothing Return strMD5 End Function ``` 该函数首先创建了一个 MD5 实例,然后以字节形式读取文件内容,并计算MD5 哈希。最后,通过 `StringBuilder` 构建一个十六进制字符串表示的 MD5 [^2]。 ### C# 实现 在 C# 中,可以通过以下代码计算文件MD5 : ```csharp private string GetMD5HashFromFile(string filePath) { FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); try { System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } catch (Exception ex) { Log.WriteLog(LogFile.Error, "获取文件MD5出错\r\n" + ex); file.Close(); return ""; } } ``` 此方法首先打开文件流,然后使用 `MD5CryptoServiceProvider` 计算文件MD5 哈希。结果通过 `StringBuilder` 转换为十六进制字符串[^3]。 ### 总结 无论使用哪种语言,计算文件MD5 哈希的基本步骤都是相似的:读取文件内容、计算哈希、将结果转换为十六进制字符串。根据具体需求选择合适的编程语言实现即可。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值