数据包完整性校验总结

简介: 为了保证分发的数据包的一致性,常常需要增加数据包校验码,这样可以减少因为传递过程中造成的数据包不能使用问题,比如jar包的__invalid distance code__问题。在开始讨论数据包校验码生成方法前,先了解一下基本概念。 # 核心技术 ## 哈希 哈希是一种不可逆的映射,可以将数据经过哈希算法计算得到一个哈希值,而无法再将该哈希值反映射得到原始的数据。一般来说,不同的数据得到的哈

为了保证分发的数据包的一致性,常常需要增加数据包校验码,这样可以减少因为传递过程中造成的数据包不能使用问题,比如jar包的__invalid distance code__问题。在开始讨论数据包校验码生成方法前,先了解一下基本概念。

核心技术

哈希

哈希是一种不可逆的映射,可以将数据经过哈希算法计算得到一个哈希值,而无法再将该哈希值反映射得到原始的数据。一般来说,不同的数据得到的哈希值是不同的,但也有极少的可能会出现碰撞,这极小的概率在这里不予考虑
在网络数据完整性校验中使用的哈希算法通常包括:MD5, SHA。

数据完整性校验

数据完整性校验一般使用哈希算法对数据进行哈希得到数据包的一个哈希值,发布到网上。用户下载数据包后,需要再次对结果的数据包计算哈希值,如果计算的结果与网上公布的一致,即代表数据包完整。

生成哈希值方法

shell命令

  • MacOS
md5 source_file.tar
shasum source_file.tar
  • CentOS / Ubuntu
md5sum source_file.tar
sha1sum source_file.tar

maven打包

执行install命令时可以选择自动生成md5与sha1文件(在本地maven库里,例如~/.m2/repository)

mvn install -DcreateChecksum=true

或在pom文件中增加插件

<plugin>
  <artifactId>maven-install-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <createChecksum>true</createChecksum>
  </configuration>
</plugin>

ant打包

采用Checksum工具生成md5与sha1码,需要在build.xml中增加task:

<checksum file="source_file.tar" algorithm="SHA-1" fileext=".sha1" forceOverwrite="yes"/>
<checksum file="source_file.tar" algorithm="MD5" fileext=".md5" forceOverwrite="yes"/>

其中fileext代表生成哈希码文件的后缀

参考

目录
相关文章
|
1月前
|
Cloud Native NoSQL 关系型数据库
数据传输DTS校验问题之校验报错如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
298 0
|
1月前
|
存储 传感器 算法
【软件设计师备考 专题 】校验方法和校验码:确保数据的完整性
【软件设计师备考 专题 】校验方法和校验码:确保数据的完整性
43 0
|
1月前
|
存储 算法 Serverless
数据校验的艺术:从奇偶校验到CRC校验与海明校验
数据校验的艺术:从奇偶校验到CRC校验与海明校验
77 0
|
2月前
|
数据采集 存储 数据库
数据完整性验证
数据完整性验证
94 3
|
3月前
|
测试技术 数据安全/隐私保护
你知道完整性测试吗?
你知道完整性测试吗?
|
3月前
|
数据格式 Python
添加 常用校验方法,校验常见数据格式
添加 常用校验方法,校验常见数据格式
23 0
|
7月前
|
存储 算法 安全
5.2 磁盘CRC32完整性检测
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来保护内存或磁盘文件不会被非法篡改。总之,内存和磁盘中的校验技术都是用于确保数据和程序的完整性和安全性的重要技术。磁盘CRC(循环冗余校验)用于检测磁盘数据的完整性,一般而言某些木马专杀工具同样会用到磁盘CRC特征校验技术,该技术的实现原理与内存验证原理完全一致,针对磁盘的验证同样很简单,但此处我
54 0
5.2 磁盘CRC32完整性检测
|
8月前
|
前端开发
IE校验问题
IE校验问题
32 0
|
9月前
|
存储 安全 算法
在日常开发中,敏感数据应该如何保存或传输
说到敏感信息,第一个想到的恐怕就是用户密码了吧。攻击者一旦获取到了用户密码,就会登录用户的账号进行一系列操作。甚至有些用户还习惯不管什么应用都用同一个密码,导致攻击者可以登录用户全网账号。
|
10月前
|
数据安全/隐私保护
bycrypt 加密和校验
bycrypt 加密和校验
83 0