我是靠谱客的博主 强健钢笔,最近开发中收集的这篇文章主要介绍LINUX/UNIX 和WINDOWS计算的MD5值不一致,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述:

        同一个文件我转成字符串之后传的MD5函数中计算值校验数据,在本地windows上正常通过校验,在linux上校验未通过。

排查:

        打印日志文件发现两个系统的MD5值不一致

原因:贴出转换代码


//读取js返回String
public static String js2string(String path){
StringBuffer out
= new StringBuffer();
try{
InputStreamReader inreader = new InputStreamReader(classLoader.getResourceAsStream(path));
BufferedReader br = new BufferedReader(inreader);
String str = null;
while ((str = br.readLine()) != null) {
out.append(System.lineSeparator() + str);
}
br.close();
inreader.close();
}catch (Exception e){
e.printStackTrace();
}
return out.toString();
}

    症结所在:注意System.lineSeparator()方法  On UNIX systems, it returns "n"; on Microsoft Windows systems it returns "rn"。

处理方案:

        换行不再使用System.lineSeparator()方法,而是写死 "rn",亲测有效

最后

以上就是强健钢笔为你收集整理的LINUX/UNIX 和WINDOWS计算的MD5值不一致的全部内容,希望文章能够帮你解决LINUX/UNIX 和WINDOWS计算的MD5值不一致所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部