读书人

hash值,该怎么处理

发布时间: 2012-10-12 10:17:04 作者: rapoo

hash值

Java code
程序启动时,各个参数缺省值从配置文件读取。在配置文件的最后增加一Hash值,该值由配置文件的各个参数计算得到,用于验证完整性,避免随意更改该文件。

怎么做?

[解决办法]
问题是你的hash值要怎么计算呀,你可以自订一个hash算法。下面这个是String的hashCode的算法。
Java code
    public int hashCode() {    int h = hash;    if (h == 0) {        int off = offset;        char val[] = value;        int len = count;            for (int i = 0; i < len; i++) {                h = 31*h + val[off++];            }            hash = h;        }        return h;    }
[解决办法]
把所有参数的名称和值全部串起来合并成一个字符串,然后直接用该字符串的hash值就好了。
[解决办法]
如果配置文件内容是:
student=li
number=2012
那么,字符串是:
String content = "studentlinumber2012";
最后的hash值是:
int hash = content.hashCode();
[解决办法]
为什么一定要hash呢,把所有字符加起来md5一下也可以,位数也只有16位或32位
[解决办法]
hash的存在为了加快检索能力吧。
[解决办法]
楼主只要要避免随意更改配置文件啦... 这个不用hash值.. 你直接算文件的MD5就可以啦..
算出来的MD5保存下来, 下次读文件的时候验证一下, 就可以了.

读书人网 >J2SE开发

热点推荐