针对目录中文件创建MD5值
来源:互联网 发布:linux route 编辑:程序博客网 时间:2024/05/23 00:30
import java.security.MessageDigest;import java.io.FileInputStream;import java.io.File;import java.io.InputStream;import java.util.Arrays;import java.util.List;import java.util.ArrayList;import java.io.FileWriter;public class MD5Create {private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; static List<String> paths = new ArrayList<String>(); static String apklistfile = "./Md5Checklist.java"; public static void appendMethodB(String fileName, String content) { try { //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true); writer.write(content); writer.close(); } catch (Exception e) { e.printStackTrace(); } }public static void main(String[] args){ String a,b; String base=new String("00000000000000000000000000000000"); appendMethodB(apklistfile, "package android.util;\n"); appendMethodB(apklistfile, "public class Md5Checklist {\n"); appendMethodB(apklistfile, " private static final String[] checklist = {\n"); GetDirFiles(args[0],"apk",false); for (int i = 0; i < paths.size(); i++) { base = StringAddFunction(base,paths.get(i)); } System.out.println(base); appendMethodB(apklistfile, " };\n\n"); appendMethodB(apklistfile, " public static String[] getMd5Checklist(){\nreturn checklist;\n }\n"); appendMethodB(apklistfile, "}\n");}public static String toHexString(byte[] b) { StringBuilder sb = new StringBuilder(b.length * 2); for (int i = 0; i < b.length; i++) { sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]); sb.append(HEX_DIGITS[b[i] & 0x0f]); } return sb.toString(); }public static String StringAddFunction(String a, String b) { StringBuilder sb = new StringBuilder(b.length() * 2); int count=0; int aa,bb; for (int i = 0; i < b.length(); i++) { if (a.charAt(i)>='A') { aa = a.charAt(i)-'A'+10; } else { aa = a.charAt(i); } if (b.charAt(i)>='A') { bb = b.charAt(i)-'A'+10; } else { bb = b.charAt(i); } count = bb+aa; count= count%16; sb.append(HEX_DIGITS[count]); } return sb.toString(); }public static void GetDirFiles(String Path, String Extension, boolean IsIterative) { File[] files = new File(Path).listFiles(); File f; String md5_add_value; String md5_read_value; if(files == null) { return; } for (int i = 0; i < files.length; i++) { f = files[i]; if(!f.canRead()) { return; } if (f.isFile()) { if (f.getName().contains(Extension)) { paths.add(md5sum(f.getPath())); appendMethodB(apklistfile, " \""+f.getName()+"\",\n"); } } else if (f.isDirectory()) GetDirFiles(f.getPath(), Extension, IsIterative); } } public static String md5sum(String filename) {InputStream fis;byte[] buffer = new byte[1024];int numRead = 0;MessageDigest md5;try{fis = new FileInputStream(filename);md5 = MessageDigest.getInstance("MD5");while((numRead=fis.read(buffer)) > 0) {md5.update(buffer,0,numRead);}fis.close();return toHexString(md5.digest());} catch (Exception e) {System.out.println("error");return null;}}}
0 0
- 针对目录中文件创建MD5值
- java 中文件目录创建操作
- C++递归遍历获取某一目录下文件md5值
- 关于Oracle针对中文的md5加密
- [代码实例][Linux系统编程]遍历目录并且输出目录下文件MD5值
- linux中文件目录详解
- 查看目录中文件数目
- Qt 中文件与目录
- IOS中文件目录递归
- python 中文件、目录比较
- c#创建目录和文件
- Python创建中文目录
- java中文件的创建
- Perl中文件与目录的操作
- MFC中文件及目录操作
- python中文件和目录操作
- python中文件和目录操作
- 目录中文件内容处理小工具
- 重构之父Martin Fowler《重构(Ruby版)》:新一代Ruby程序员的指路明灯
- Ruby on Rails性能优化七剑
- python yield 进阶(二)
- 详细解析Java中抽象类和接口的区别
- Google Code Jam 2014 Qualification Round:Problem B. Cookie Clicker Alpha
- 针对目录中文件创建MD5值
- netmap内存池初始化流程
- input-dev输入子系统
- 苹果审核Metadata Rejected解决
- 使用HTML5的canvas做一个会动的时钟
- 侧滑删除 仿微信
- 银块破解版
- linux-2.6.30-4内核常用头文件
- [HAOI2010]最长公共子序列