public static long crc64(final byte[] array) {
        if (array == null) {
            return 0;
        }
        return crc64(array, 0, array.length);
    }
@Test
    public void testCrc64() {
        byte[] bs = "hello world".getBytes();
        long c = CrcUtil.crc64(bs);
        assertEquals(c, CrcUtil.crc64(bs));
        assertEquals(c, CrcUtil.crc64(bs));
        assertEquals(c, CrcUtil.crc64(bs, 0, bs.length));

        ByteBuffer buf = ByteBuffer.wrap(bs);
        assertEquals(c, CrcUtil.crc64(buf));

        buf = ByteBuffer.allocateDirect(bs.length);
        buf.put(bs);
        BufferUtils.flip(buf);
        assertEquals(c, CrcUtil.crc64(buf));
    }