【发布时间】:2023-03-30 18:39:01
【问题描述】:
对于人类友好的“校验和”值,我只喜欢生成 0 到 99 范围内的值。
输入是一串 ASCII 字符(主要是 a-z 和 0-9)。
我认为我应该为此使用某种 CRC 算法,但我想知道如何通过平衡的校验和结果获得最佳结果。
我能想象到的最便宜的技术是计算 CRC-16 或 CRC-32,然后将结果取模 100。但这并不是一个好的结果,是吗?
理想情况下,什么是一个好的(类似 CRC)算法,用于从一组 N 个不同的值(例如,如果我只使用 a-z 和 0-9,则 N = 36)对一串值进行校验和,从而产生校验和0到M-1的范围?
它不必很快,因为我正在处理小字符串。
【问题讨论】: