为Java对象生成校验和

时间:2018-12-26 10:13:37

标签: java

我有一个实现Serializable的Java类:

Class A implements Serializable {
    public String name;
    int contact;
}

我将此Java对象存储在mongodb中。如何为该Java对象生成校验和?

public String generateChecksum throws Exception(A object){
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     ObjectOutputStream oos = new ObjectOutputStream(baos);
     oos.writeObject(object);

     MessageDigest md = MessageDigest.getInstance("MD5");
     byte[] thedigest = md.digest(baos.toByteArray());
     String hex =  DatatypeConverter.printHexBinary(thedigest);
     System.out.println(hex);
}

我得到

  

oos.writeObject(object)的空指针异常。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

问题似乎是您的代码无法编译。

Class A implements Serializable {


public String generateChecksum throws Exception(A object){

答案 1 :(得分:0)

除非对校验和有特定要求,否则最简单的方法是使用hashCode。

@Override
public int hashCode() {
    return Objects.hash(name, contact);
}

public static String hashCodeString(Object a) {
    return Integer.toHexString(a.hashCode());
}