【发布时间】:2018-11-09 11:48:46
【问题描述】:
我想生成一个固定长度的散列字符串。我为此使用MessageDigest API。我注意到 API 中的 this 函数,但它返回一个整数而不是字节数组。
当我尝试使用这种重载的摘要方法时,我得到一个 java.security.DigestException: SHA-256 摘要的长度必须至少为 32 或输出缓冲区对于指定的偏移量和长度来说太小了。
有人可以举例说明如何生成固定长度的哈希值吗?
【问题讨论】:
-
你真正想要达到什么目的?如果您编辑问题并添加不起作用的代码,它也会有所帮助。
-
如果您想要更短的内容,请使用从 API 返回的摘要中的第一个或最后 n 个字节。
-
该方法的文档(您发布的链接)明确指出“buf - 计算摘要的输出缓冲区”,返回的整数只是字节数。您必须传递将由该方法填充的足够大的字节数组(空)。还有其他方法可用,例如
digest -
请同时发布您尝试过但不起作用的代码
标签: java