计算字节数组的异或

时间:2016-10-10 20:21:22

标签: java hash xor

你好,对于一个赋值我必须为一个文件实现一个简单的哈希。参数如下:

  1. 如果以字节数测量的输入长度不是4的倍数,则将0添加到末尾,直到它是4的倍数。
  2. 将输入数组分成4个字节的块。
  3. 计算所有块的异或作为散列输出。
  4. 我已经完成了积分a和b但是我被困在c上。我不确定现在要去哪里。到目前为止,这是我的代码:

    public class HomeWork {
        public static String file = "HW2P1input";
    
        public static void main(String[] args) throws IOException {
            Path path = Paths.get(file);
            byte[] source = Files.readAllBytes(path);
            byte newB[][] = divideArray(source,4);
        }
    
        public static byte[][] divideArray(byte[] source, int chunksize) {
    
            byte[][] ret = new byte[(int)Math.ceil(source.length / (double)chunksize)][chunksize];
    
            int start = 0;
    
            for(int i = 0; i < ret.length; i++) {
                if(start + chunksize > source.length) {
                    System.arraycopy(source, start, ret[i], 0, source.length - start);
                } else {
                    System.arraycopy(source, start, ret[i], 0, chunksize);
                }
                start += chunksize ;
            }
            return ret;
        }
    }
    

    我知道^是独占或运算符,但是当我只有一个字节数组时,我不明白如何使用它。

0 个答案:

没有答案