2013-06-19 66 views
2

我需要创建一个包含几个基本类型对象的校验和。 我在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

这似乎是完美的...... – Sap

回答

2

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

选择你的毒药!

+0

我也是结合在一个字符串,然后所有的值生成一个MD5? – Addev

+0

@Addev你为什么不写一个你想要实现的代码示例 – Sap

+0

请检查编辑的问题 – Addev