日期:2014-05-20  浏览次数:20830 次

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保存下来, 下次读文件的时候验证一下, 就可以了.