×

javamd5

Java,如何获取文件的MD5值?java多个文件怎么生成一个md5

admin admin 发表于2022-05-04 17:10:08 浏览109 评论0

抢沙发发表评论

Java,如何获取文件的MD5值

package cdm;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.math.BigInteger;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;import java.security.MessageDigest;import org.apache.commons.codec.digest.*; import org.apache.commons.io.IOUtils;public class testMD5 {public static String getMd5ByFile(File file) throws FileNotFoundException {String value = null;FileInputStream in = new FileInputStream(file);try {MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());MessageDigest md5 = MessageDigest.getInstance(“MD5“);md5.update(byteBuffer);BigInteger bi = new BigInteger(1, md5.digest());value = bi.toString(16);} catch (Exception e) {e.printStackTrace();} finally {if(null != in) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return value;}public static void main(String args) throws IOException {String path=“E:\文件.zip“;String v = getMd5ByFile(new File(path));System.out.println(“MD5:“+v.toUpperCase());FileInputStream fis= new FileInputStream(path);String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));IOUtils.closeQuietly(fis);System.out.println(“MD5:“+md5);//System.out.println(“MD5:“+DigestUtils.md5Hex(“WANGQIUYUN“));}}

java多个文件怎么生成一个md5

这里定义了一些基本的变量与静态对象,并指定采用的方式是“md5“,下张图为定义了一个方法,方法的参数是接收一个文件File对象,并且返回该文件生成的”md5“值。这里定义了一个转化方法,把文件或文件流以字节的方式进行转换,使之生成唯一的md5,此方法间接的应用到了md5的生成中。这里主要定义了一个根据提供的文件流输入流InputStream进行生成md5的值,如上几幅图中的代码加在一起就是完整的文件或文件流的md5值生成方法。4最后一张图片为最终生成后的效果,文件上传的时候可以先生成md5的值后到数据库中进行查找,如果找到了就说明相同的文件已经存在,那么就不应该再保存了,否则会出现相同的冗余文件。

java 如何采用md5解密

package endecrypt;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * 采用MD5加密解密 * @author tfq * @datetime 2011-10-13 */public class MD5Util { /*** * MD5加码 生成32位md5码 */ public static String string2MD5(String inStr){ MessageDigest md5 = null; try{ md5 = MessageDigest.getInstance(“MD5“); }catch (Exception e){ System.out.println(e.toString()); e.printStackTrace(); return ““; } char charArray = inStr.toCharArray(); byte byteArray = new byte[charArray.length]; for (int i = 0; i 《 charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i 《 md5Bytes.length; i++){ int val = ((int) md5Bytes[i]) & 0xff; if (val 《 16) hexValue.append(“0“); hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } /** * 加密解密算法 执行一次加密,两次解密 */ public static String convertMD5(String inStr){ char a = inStr.toCharArray(); for (int i = 0; i 《 a.length; i++){ a[i] = (char) (a[i] ^ ’t’); } String s = new String(a); return s; } // 测试主函数 public static void main(String args) { String s = new String(“tangfuqiang“); System.out.println(“原始:“ + s); System.out.println(“MD5后:“ + string2MD5(s)); System.out.println(“加密的:“ + convertMD5(s)); System.out.println(“解密的:“ + convertMD5(convertMD5(s))); }}