gpt4 book ai didi

java - 在我通过电子邮件发送给自己后,android 中文件上的 md5 校验和与 md5 不匹配

转载 作者:太空狗 更新时间:2023-10-29 15:54:04 24 4
gpt4 key购买 nike

下面是我用来将文件转换为字符串然后再转换为 mdf 的函数。我正在输出文件路径和文件名以确保一切正常。有什么我没有考虑到的可以改变文件(实际上是视频 mp4)指纹的东西吗?我正在 ubuntu 上对照 md5sum 检查它。

private static String readFileToString(String filePath)
throws java.io.IOException{

StringBuffer fileData = new StringBuffer(1000);
BufferedReader 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();
System.out.println(fileData.toString());
return fileData.toString();
}

public static String getMD5EncryptedString(String encTarget){
MessageDigest mdEnc = null;
try {
mdEnc = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
System.out.println("Exception while encrypting to md5");
e.printStackTrace();
} // Encryption algorithm
mdEnc.update(encTarget.getBytes(), 0, encTarget.length());
String md5 = new BigInteger(1, mdEnc.digest()).toString(16) ;
return md5;
}

最佳答案

字符串不是二进制数据的容器。丢失字节数组和字符串之间的两次转换。您应该以字节形式读取文件并直接以字节计算 MD5。您可以在阅读时这样做:您不需要先阅读整个文件。

而且 MD5 不是加密:它是安全散列。

关于java - 在我通过电子邮件发送给自己后,android 中文件上的 md5 校验和与 md5 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17757353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com