【发布时间】:2020-11-18 01:15:03
【问题描述】:
我可以用这个函数生成md5:
private void generateMd5() throws NoSuchAlgorithmException, IOException {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(pathFile.getBytes());
nomGestionnaire.setText(String.valueOf(String.format("%032X", new BigInteger(1, hash))));
}
我的问题是当我将我的 md5 生成器与另一个 md5 生成器进行比较时,我没有相同的值。 正常吗?好像我的生成器没有生成 real md5 ?
使用此文件进行测试:aaa.txt(内容:aaa)
我的发电机:A4FA953DB4BC7772E5AF67BD706B9110
其他生成器:47bce5c74f589f4867dbd57e9ca9f808
编辑:
FileChooser fileChooser = new FileChooser();
File selectedFile = new
File(String.valueOf(fileChooser.showOpenDialog(primaryStage)));
nameFile = selectedFile.getName();
pathFile = selectedFile.getPath();
【问题讨论】:
-
您正在计算字符串的 md5(文件路径)。我的第一个怀疑是编码问题(即字符串可以用不同的字节序列表示)。您能否将您的输入和生成的两个 md5 和添加到您的问题中?
-
@Software149735:
pathFile的类型和值是什么? -
@Software149735 您是要检查/运行文件路径的 md5 校验和还是要检查/运行文件内容的 md5 校验和?
-
“pathFile”是文件的路径,还是文件的内容?
-
@Software149735 所以有你的问题:你正在比较 md5("aaa") 和 md5("C:\Users\Software149735\aaa.txt") 或类似的东西。当然这些不一样!
标签: java