我需要创建一个包含几个基本类型对象的校验和。 我在THIS页面中阅读了“编写正确的hashCode方法”部分。我需要在java,php和objectivec中使用类似的工作(并为相同的输入返回相同的值)。
我该怎么办?我可以使用一些图书馆吗?
编辑(我当前的代码):
public class CheckSumGenerator {
private final static String SEPARATOR = "|";
private final static String DOUBLE_FORMAT = "%.30f";
private final static DecimalFormat FORMAT_DOUBLE=new DecimalFormat("#.#################################");
StringBuilder tempChain = new StringBuilder();
public void putInt(int value) {
tempChain.append(SEPARATOR).append(value);
}
public void putLong(long value) {
tempChain.append(SEPARATOR).append(value);
}
public void putString(String value) {
tempChain.append(SEPARATOR).append(value);
}
public void putBoolean(boolean value) {
tempChain.append(SEPARATOR).append(value ? 1 : 0);
}
public void putDouble(double value) {
tempChain.append(SEPARATOR).append(FORMAT_DOUBLE.format(value));
}
public String getChecksum() {
return HashUtils.MD5(tempChain.toString());
}
}
答案 0 :(得分:4)
您正在寻找的是Checksum方法。 MD5是Hashing技术之一,它将为您提供跨平台和语言的相同输出。我认为你必须自己做研究才能找出每种语言的API。
但这里有一些好的开始。
还有更多
答案 1 :(得分:2)
依赖Java的.hashCode()
并不是你想要的。如果你想要校验和,你可以选择使用几乎所有语言的MD5,或SHA1,SHA256,SHA512等。
选择你的毒药!