2

我需要创建一个包含几个基本类型对象的校验和。我阅读了页面中的“编写正确的 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());
    }

}
4

2 回答 2

4

您正在寻找的是校验和方法。MD5 是一种散列技术,它将始终为您提供跨平台和语言的相同输出。我认为您必须进行自己的研究才能找出每种语言的 API。

但这里有一些好的开始。

还有很多

于 2013-06-19T06:58:51.797 回答
2

在这里依赖 Java.hashCode()不是您想要的。如果你想要校验和,你可以选择使用,例如,MD5,它几乎适用于所有语言,或者 SHA1、SHA256、SHA512 等。

选择你的毒药!

于 2013-06-19T06:58:28.693 回答