【问题标题】:java object to Sha-256java反对Sha-256
【发布时间】:2021-04-28 19:52:46
【问题描述】:

我正在尝试使用哈希函数。我知道我可以消化字符串或字节。但是,当我使用 Object O 作为输入时,输入值是多少?

对象O有两个int值,还有toString()函数

public Key(int arg1, int arg2) {
    super();
    this.a=arg1;
    this.b=arg2;
}


try{
    MessageDigest v1 = MessageDigest.getInstance("SHA-256");
    O.update(v1);
    v2_1 = BytesToHex(v1.digest());
}

【问题讨论】:

    标签: java hash sha256


    【解决方案1】:

    MessageDigest 仅适用于字节。它甚至不接受Strings。只是字节。

    这些是可用的更新方法。可以看到这四个都只处理字节:

    void update​(byte input);
    void update​(byte[] input);
    void update​(byte[] input, int offset, int len);
    void update​(ByteBuffer input);
    

    您可以使用您选择的过程将对象序列化为字节。 MessageDigest 不会为您处理,也没有任何方便的方法来协助处理。除了原始字节,它不处理任何东西。

    【讨论】:

    • 谢谢!!如果我用不同的字节更新 Message Diegest 两次,它会混合吗?
    • @choky7 不,字节不会“混合” - 字节被附加。 update(new byte[] {1,2}); 后跟 update(new byte[] {3,4}); 对摘要的影响与调用 `update(new byte[] {1,2,3,4}); 相同
    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 2021-01-22
    • 2013-06-03
    • 2011-03-02
    • 2013-06-04
    相关资源
    最近更新 更多