Java如何实现校验和(Checksum)呢?

书欣 Java经验 发布时间:2022-08-10 10:50:38 阅读数:16118 1
下文笔者讲述Java对文件进行校验的简介说明,如下所示:

校验和及实现算法

校验和是指传输位数的累加
当传输结束时
接收者可以根据这个数值判断是否接到了所有的数据
当数值匹配,则说明传送已经完成

校验和算法

常用的校验和算法有:
    Adler32 和 CRC32

CRC32算法

 
String str = "java265.com";
byte[] bytes = str.getBytes();
 
接下来通过字节数组计算校验和:

public static long getCRC32Checksum(byte[] bytes) {
    Checksum crc32 = new CRC32();
    crc32.update(bytes, 0, bytes.length);
    return crc32.getValue();
}

输入流校验和

当校验对象是一个文件时,我们可以通过验证流的方式对数据进行验证
如下例所示 
public static long getChecksumCRC32(InputStream stream, int bufferSize) 
  throws IOException {
    CheckedInputStream checkedInputStream = new CheckedInputStream(stream, new CRC32());
    byte[] buffer = new byte[bufferSize];
    while (checkedInputStream.read(buffer, 0, buffer.length) >= 0) {}
    return checkedInputStream.getChecksum().getValue();
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202208/16600998734205.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者