当前位置: 首页 > 面试题库 >

如何为Java对象生成校验和

郎志
2023-03-14
问题内容

我正在寻找一种为任何类型的Java对象生成校验和的解决方案,对于产生相同对象的应用程序的每次执行,该校验和都保持不变。

我尝试了Object.hashCode(),但是api说

....从应用程序的一个执行到同一应用程序的另一个执行,此整数不必保持一致。


问题答案:

我遇到了类似的问题(为XML文件生成良好的哈希码),我发现最好的解决方案是通过MessageDigest使用MD5,或者如果您需要更快的速度:Fast
MD5
。请注意,即使Object.hashCode每次都相同,也太短(仅32位),以确保高唯一性。我认为64位是计算良好哈希码的最低要求。请注意,MD5会生成128位长的哈希码,在这种情况下,它应该甚至更多。

当然要使用,MessageDigest您需要先序列化(在您的情况下为marshall)对象。



 类似资料:
  • 向createProxy和getProxy这两个方法传了个接口类型的类,为什么生成代理对象为null呢【吐血】大佬们救救

  • null 我不确定校验和是只在数据上计算还是在开始结构上计算(以十六进制为910H) 我附上了一些交流信息,每行是一条信息。我尝试了诸如、和等算法;不幸的是没有任何运气。 更新:我现在有了更多的进步,我现在不再确定它是校验和还是CRC。我已经生成并发送了从0到34的数据值,系统生成了以下“校验和” null Upadte2:我现在已经生成了数据,其中数据结构的一个位是1

  • 我只是想知道类(Oracle提供的rt.jar内部)如java.lang.Object、java.lang.String是如何从.java源文件生成的。我认为,他们的javac不可能编译它们。 我尝试编译包含“类Dummy{}”的Dummy.java [解析已启动RegularFileObject[dummy.java]] [解析完成12毫秒] [源文件的搜索路径:.]

  • 编辑:现在看起来更干净了,反映了我目前的状况和我正在努力实现的目标,并展示了我正在处理的新问题(下面有一个评论解释了我得到了什么)。 抱歉,如果帖子有点长,但我希望每个人都能看到整个画面。

  • 问题内容: 我使用sf.json库在Java Web应用程序中映射传入请求的表单数据。 可以说传入请求是http:// localhost:8080 / app / addProfile ,其表单数据为: 服务器端 : 这种方法的主要问题是,如果对结构进行少量修改,则需要修改整个代码。 有没有可以配置验证所需规则的api? 问题答案: 您可以使用Json验证器:-https: //github.c

  • 我使用sf.json库来映射在java中的Web应用程序中传入请求的表单数据。 假设传入请求http://localhost:8080/app/addProfile表单数据为: 服务器端: 这种方法的主要问题是,如果在结构中有微小的修改,那么整个代码都需要修改。 是否有api可以配置验证所需的规则?