将字符串散列到特定长度

Hashing a string to a specific length

我的任务是将字符串加密到一定长度。 理想情况下....该函数应作为参数...

  1. 要加密的可变大小的字符串
  2. 生成的加密字符串的长度

不需要解密。我一直在看 SHA384,但我一直无法理解在线示例,无法修改它以使其散列到指定长度。

你不能请求长度,那是方法的一部分。

如果您想要更短的输出,只需删除多余的字节,每个字节(和位)都是随机的,删除哪些字节没有区别。


散列不是加密,它是一种单向不可逆函数,采用可变数量的输入并生成固定数量的输出。

您需要哈希加密吗?

您没有说是否需要加密安全散列。密码哈希:SHA-1、SHA-2、SHA-3 和其他具有固定范围的输出大小,通常相对有限。

非加密哈希通常有更广泛的可用大小范围。对于非加密哈希,我经常建议使用 FNV hash,它易于实现并提供范围广泛的输出大小:32 位到 1024 位。

哈希是一种单向函数,这意味着它无法逆转。如果你想生成一个许可证密钥(例如),你可以简单地对散列字符串进行子字符串化。