Download from URL and MD5 check
//package com.IsraelPack; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import android.util.Log; public class Utils { public static boolean DownloadFromUrl(String url, String fileName) { try { BufferedInputStream in = new BufferedInputStream(new URL(url) .openStream()); FileOutputStream fos = new FileOutputStream(fileName); BufferedOutputStream bout = new BufferedOutputStream(fos, 1024); byte[] data = new byte[1024]; int x = 0; while ((x = in.read(data, 0, 1024)) >= 0) { bout.write(data, 0, x); } bout.close(); in.close(); } catch (IOException e) { Log.e("IsraelPack", e.getMessage()); return false; } return true; } public static boolean checkMD5(String md5, String fileName) { if (md5 == null || md5 == "" || fileName == null) { return false; } String calculatedDigest = calculateMD5(fileName); if (calculatedDigest == null) { return false; } return calculatedDigest.equalsIgnoreCase(md5); } public static String calculateMD5(String fileName) { File updateFile = new File(fileName); MessageDigest digest = null; try { digest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { return null; } InputStream is = null; try { is = new FileInputStream(updateFile); } catch (FileNotFoundException e) { return null; } byte[] buffer = new byte[8192]; int read = 0; try { while ((read = is.read(buffer)) > 0) { digest.update(buffer, 0, read); } byte[] md5sum = digest.digest(); BigInteger bigInt = new BigInteger(1, md5sum); String output = bigInt.toString(16); // Fill to 32 chars output = String.format("%32s", output).replace(' ', '0'); return output; } catch (IOException e) { throw new RuntimeException("Unable to process file for MD5", e); } finally { try { is.close(); } catch (IOException e) { throw new RuntimeException( "Unable to close input stream for MD5 calculation", e); } } } public static String readFileAsString(String filePath) { try { StringBuffer fileData = new StringBuffer(1000); BufferedReader reader; reader = new BufferedReader(new FileReader(filePath)); char[] buf = new char[1024]; int numRead = 0; while ((numRead = reader.read(buf)) != -1) { String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new char[1024]; } reader.close(); return fileData.toString(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }
1. | Md5 sum | ||
2. | MD5 hash generator. | ||
3. | md5 sum and hmac Sha1 Digest | ||
4. | Create Md5 Checksum | ||
5. | MD5 Hash | ||
6. | MD5 String Util | ||
7. | Md5 Hash and MessageDigest | ||
8. | Md5 String |