Java中哈希xml字符串的最佳哈希函数

Java中哈希xml字符串的最佳哈希函数,java,xml,postgresql,string-hashing,Java,Xml,Postgresql,String Hashing,我必须用Java生成XML字符串的散列,然后将此信息存储在数据库表字段中(我的DBMS是Postgres)。使用哪种哈希函数最好?提前感谢您当前最好(最安全)的通用哈希函数是SHA256或SHA512。除非您想要超高安全性,否则SHA256就可以了 对于密码散列,当前的标准是bcrypt 周围有很多散列函数,所以不要随便挑一个…这取决于散列函数的用途。如果您的目标是在文档之间进行快速相等匹配,那么这取决于您认为两个文档相等的标准。例如,如果它们有不同的空格,或者如果它们有相同的属性但顺序不同,您

我必须用Java生成XML字符串的散列,然后将此信息存储在数据库表字段中(我的DBMS是Postgres)。使用哪种哈希函数最好?提前感谢您

当前最好(最安全)的通用哈希函数是SHA256或SHA512。除非您想要超高安全性,否则SHA256就可以了

对于密码散列,当前的标准是bcrypt


周围有很多散列函数,所以不要随便挑一个…

这取决于散列函数的用途。如果您的目标是在文档之间进行快速相等匹配,那么这取决于您认为两个文档相等的标准。例如,如果它们有不同的空格,或者如果它们有相同的属性但顺序不同,您希望它们相等吗?如果这是要求的一部分,那么最好的方法可能是首先规范化XML文档,然后对规范化表单应用通用字符串哈希函数。

检查此问题谢谢您提供的链接,两者都非常有用。@almasshaikh:Oracle的XML函数与Postgres相关的问题有什么关系?虽然我认为应该结束,而且我的第一反应是这样做,但我还是决定不公开,因为我认为这对程序员来说是很有价值的问答材料,好的答案不是主观的,它们将基于特定的技术考虑。我相信当前的加密标准是Bcrypt。@克里斯托弗:是的,我是在评论最佳通用哈希函数。OP没有明确提到密码,bcrypt更好,但我在中添加了这一点。谢谢,我明白了。当您说“当前最佳(最安全)”时有点误导。在我的情况下,如果两个xml文档具有相同的属性,但顺序不同,则必须将它们视为不同。传递的文档包含用户选择,并根据xml架构进行验证。规范化文档到底是什么意思?我可以应用哪种通用功能?谢谢这里有一个W3C对“规范XML”的定义,这是两个XML文档是否应该被视为等效的一个可能的定义:请参阅。还有一些库可以为您将XML转换为规范的XML,例如。但是如果你对平等的定义是本土的,那么这些对你没有帮助。好的,谢谢你提出的宝贵建议。作为第一步,我将进行规范化,然后添加更详细的检查。