可能重复如何在 C++ 中以较小的字符串减少较大的字符串?可能是通过散列?
我试图为 java 中的 bmp 文件创建自己的校验和算法。因此,对于 54 字节(432 位)的标头,生成的校验和为 378 位长。
如何将其缩减为更小的数据集?关于如何实现我自己的哈希算法的任何建议?(条件之一是不使用现有算法)。
我使用了一个非常简单的哈希函数。
public static String hash_function(String bmpBytes) {
String hash = "";
int left_shift = Integer.parseInt(bmpBytes);
int right_shift = Integer.parseInt(bmpBytes);
left_shift = left_shift << 2;
right_shift = right_shift >> 2;
int xor = left_shift ^ right_shift;
hash += Integer.toString(xor);
return hash;
}
可能的答案:
我找到了一种通过在 where 生成 'n' 个随机二进制位
n < sizeOf(hash)
然后执行hash % n-bits
.
如果这是一个有效的答案,请告诉我,我会将问题标记为已回答。