簡體   English   中英

跨平台哈希碼

[英]Cross platform hashcode

我需要創建一個包含幾個基本類型對象的校驗和。 我在頁面中閱讀了“ 編寫正確的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());
    }

}

您正在尋找的是Checksum方法。 MD5是一種哈希技術,可為您提供跨平台和語言始終相同的輸出。 我認為您必須進行自己的研究才能找出每種語言的API。

但是這里有一些好的開始。

還有很多

依賴Java的.hashCode()並不是您想要的。 如果需要校驗和,則可以選擇使用MD5,例如幾乎所有語言都可用的MD5或SHA1,SHA256,SHA512等。

選擇你的毒葯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM