java安装报错循环冗余检查_Java中循环冗余校验的实现方式介绍
CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段,下面这篇文章主要给大家介绍了关于Java中循环冗余校验(CRC32)实现的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
前言
本文主要给大家介绍了关于Java实现循环冗余校验(CRC32)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
CRC32简介
CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。
CRC32检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。
CRC实现
package com.jianggujin.codec;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.CRC32;
/**
* CRC32
*
* @author jianggujin
*
*/
public class HQCRC32
{
private static HQCRC32 crc32 = new HQCRC32();
public static HQCRC32 getInstance()
{
return crc32;
}
private HQCRC32()
{
}
private static final int STREAM_BUFFER_LENGTH = 1024;
public long encrypt(byte[] data)
{
CRC32 crc32 = new CRC32();
crc32.update(data);
return crc32.getValue();
}
public long encrypt(InputStream data) throws IOException
{
final byte[] buffer = new byte[STREAM_BUFFER_LENGTH];
int read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
CRC32 crc32 = new CRC32();
while (read > -1)
{
crc32.update(buffer, 0, read);
read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);
}
return crc32.getValue();
}
}
测试代码:
import org.junit.Test;
import com.jianggujin.codec.HQCRC32;
public class CRC32Test
{
HQCRC32 crc32 = HQCRC32.getInstance();
@Test
public void encode()
{
byte[] data = "jianggujin".getBytes();
long result = crc32.encrypt(data);
System.err.println(result);
}
}
测试结果:
724585211
总结
java安装报错循环冗余检查_Java中循环冗余校验的实现方式介绍相关推荐
- java安装报错循环冗余检查_SQLSERVER2012备份日志报错:”读取失败: 23(数据错误(循环冗余检查)。)”...
SQLSERVER2012备份日志报错:"读取失败: 23(数据错误(循环冗余检查).)" 问题: SQLSERVER2012数据库,8月6日的LOG自动备份出现问题,之前备份一直 ...
- java 安装报错2503_Windows安装Node.js报错:2503、2502的解决方法
前言 Windows真的是太恶心了!!!不仅会出现大量的垃圾文件,而且有时莫名的安装不上一些软件(正常软件).前久因为想学学Koa2,打算升级下nodejs的版本以体验下ES6.ES7的aync,aw ...
- java 安装报错2503,Windows运维之Win10安装msi程序报错2503和2502错误解决方案
本文主要向大家介绍了Windows运维之Win10安装msi程序报错2503和2502错误解决方案,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助. 刚升级了系统到win10,重新 ...
- java窗口向mysql加信息_Java中如何实现向DBC方式向表中添加数据
原标题:Java中如何实现向DBC方式向表中添加数据 Java中如何实现向DBC方式向表中添加数据 Java程序JDBC方式向数据库的表添加记录的步骤: 1.新建工程: Java Project 2. ...
- java一行输入多个数据类型_Java中的3种输入方式实现解析
这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.从键盘读取char类型数据 char ch = ...
- java实现冗余校验_Java中循环冗余校验(CRC32)的实现
前言 本文主要给大家介绍了关于Java实现循环冗余校验(CRC32)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. CRC32简介 CRC校验实用程序库 在数据存储和数据 ...
- java处理报错的快捷键_java快捷键
重要十大快捷键 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如ap ...
- java如何设置网页全屏_java中如何进行全屏方式和窗口方式的转换 详细??
java 中如何进行全屏模式和窗口模式的转换 代码如下所示: import java.awt.Dimension; import java.awt.DisplayMode; import java.a ...
- tui-editor(富文本编辑器插件)安装报错处理方法
tui-editor安装报错处理方法 项目中yarn或npm install时,tui-editor(富文本编辑器插件)安装报错. 显示 warning tui-editor > highlig ...
- Centos7 JDK安装过程中 解决java -version 报错: bash: /home/jdk1.8.0_161/bin/java: Permission denied...
1.执行Linux命令 -----vim /etc/profile 编辑profile 文件,在里面添加: #set java enviroment JAVA_HOME=/opt/JavaHome ...
最新文章
- R绘制带显著性标记的热图
- Linux2.6 内核进程调度分析
- python中x=x+1的读法-python中xrange和range的区别
- 图解Win7下PowerShell初步使用
- 【Android】对话框 AlertDialog
- C语言 | 二维数组
- 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作
- 人工智能 VS 机器学习 VS 深度学习
- 英文简历模板计算机专业,计算机专业英文简历模板制作
- 推荐top10的免费下载破解软件的网站
- flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?哪个是不必要的?...
- 英皇考级——听力测试的训练方法
- mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
- svg图片如何引入vue
- 2020-12-02 微信JSAPIV3支付
- 百度每个月的收录时间
- Suzy找到实习了吗 Day23 | 二叉树最后一节!669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树
- MATLAB 太阳系九大行星运行(天文物理)天体仿真(一)
- 超简单教你在树莓派上安装opencv(二)
- 让域控制器向DNS服务器注册SRV记录