import "hash/crc32"

概述

索引

示例

概述

Package crc32 实现32位循环冗余校验或CRC-32校验和。有关信息,请参阅http://en.wikipedia.org/wiki/Cyclic_redundancy_check。

多项式以 LSB 优先形式表示,也称为反转表示形式。

有关信息,请参阅http://en.wikipedia.org/wiki/Mathematics_of_cyclic_redundancy_checks#Reversed_representations_and_reciprocal_polynomials。

索引

常量

变量

func Checksum(data []byte, tab *Table) uint32

func ChecksumIEEE(data []byte) uint32

func New(tab *Table) hash.Hash32

func NewIEEE() hash.Hash32

func Update(crc uint32, tab *Table, p []byte) uint32

type Table

func MakeTable(poly uint32) *Table

示例

MakeTable

包文件

crc32.go crc32_amd64.go crc32_generic.go

常量

预定义的多项式。

const (        // IEEE是迄今为止最常见的CRC-32多项式。        // 由以太网(IEEE 802.3),v.42,fddi,gzip,zip,png,......使用

IEEE = 0xedb88320        // Castagnoli的多项式,用于iSCSI。        // 具有比IEEE更好的错误检测特性。        // http://dx.doi.org/10.1109/26.231911

Castagnoli = 0x82f63b78        // 库普曼(Koopman's)的多项式。        // 还具有比IEEE更好的错误检测特性。        // http://dx.doi.org/10.1109/DSN.2002.1028931

Koopman = 0xeb31d82e)

CRC-32 校验和的大小(以字节为单位)。

const Size = 4

变量

IEEETable 是 IEEE 多项式的表格。

var IEEETable = simpleMakeTable(IEEE)

func Checksum

func Checksum(data []byte, tab *Table) uint32

校验和使用表格表示的多项式返回数据的 CRC-32 校验和。

func ChecksumIEEE

func ChecksumIEEE(data []byte) uint32

ChecksumIEEE 使用 IEEE 多项式返回数据的 CRC-32 校验和。

func New

func New(tab *Table) hash.Hash32

New 创建一个新的 hash.Hash32 ,使用表中表示的多项式计算 CRC-32 校验和。它的 Sum 方法将以 big-endian 字节顺序排列值。

func NewIEEE

func NewIEEE() hash.Hash32

NewIEEE 创建一个新的 hash.Hash32 ,使用 IEEE 多项式计算 CRC-32 校验和。它的 Sum 方法将以 big-endian 字节顺序排列值。

func Update

func Update(crc uint32, tab *Table, p []byte) uint32

更新返回将 p 中的字节添加到 crc 的结果。

type Table

表格是一个256字的表格,表示高效处理的多项式。

type Table [256]uint32

func MakeTable

func MakeTable(poly uint32) *Table

MakeTable 返回一个由指定多项式构成的表。该表的内容不得修改。

示例

package mainimport ("fmt""hash/crc32")func main() {// 在此包中,CRC多项式以反转符号表示,// 或LSB优先表示。 LSB优先表示是一个带有n位的十六进制数,其中// 最高有效位表示x⁰和最低有效系数// bit表示xⁿ-1的系数(xⁿ的系数是隐含的)。 例如,CRC32-Q,由以下多项式定义,//x³²+ x³¹+ x²⁴+ x²²+ x¹⁶+ x¹⁴+ x⁸+ x⁷+ x⁵+ x³+ x¹+ x⁰// 具有反转符号0b11010101100000101000001010000001,所以该值// 应该传递给MakeTable的是0xD5828281。

crc32q := crc32.MakeTable(0xD5828281)

fmt.Printf("%08x\n", crc32.Checksum([]byte("Hello world"), crc32q))}

c语言修改elf文件crc32,hash/crc32相关推荐

  1. c语言修改elf文件crc32,ELF文件中调试信息的格式说明?

    看了很多文档,都是对ELF文件中的调试信息格式一带而过,包括<Linker & Loader>中也没有详细介绍. 我想获取调试信息中的数据结构相关的信息,结构大小,每个变量的名称, ...

  2. c语言书籍elf文件,扒一扒ELF文件

    ELF文件(Executable Linkable Format)是一种文件存储格式.Linux下的目标文件和可执行文件都按照该格式进行存储,有必要做个总结. 1. 链接举例 2. ELF文件类型2. ...

  3. linux elf命令,实战:Linux上修改ELF文件的方法

    7zip/bin/7za x -y -bd "-o/temp/94ac6fe8-1a16-43d8-8fa9-c4e2f2bd0445" "/downloadedPack ...

  4. 【BUG】ELF文件执行时出现段错误Segmentation fault,解决:使用010编辑器修改ELF文件不可执行段权限

    问题:段错误,.eh_frame不可执行. 需求:改执行权限. 工具:010 Editer,我的版本:12.0.1 Windows 10. 工具下载:010编辑器官网下载页. 第一步 查看段的执行权限 ...

  5. c#语言 修改xml文件路径,C#对XML操作:编辑XML文件内容-.NET教程,C#语言

    public void page_load(object src,eventargs e) { /* * 版 权 : copyright by sem it department * 版 本 : ve ...

  6. Linux下一种 ELF 文件的代码签名验证机制

    1 引言 随着 Linux 的不断发展,已有越来越多的人开始推广和使用 Linux,其安全性也受到越来越多的挑战.ELF(Executable and Linkable Format)[1]作为 Li ...

  7. 修改ELF可执行文件entry入口感染一个程序

    前面的文章在介绍如何将代码注入Linux内核模块的时候,我提到 "修改ELF文件或者PE文件的入口,让它跳到自己的逻辑"这件事很容易. 真的很容易吗?是的,真的很容易.本文就是要演 ...

  8. C语言 目标文件和可执行文件(ELF文件)

    转自:https://www.jianshu.com/p/7c609b70acbd 1.C语言创建程序 1.1C语言创建(分为4个步骤) 编辑 编译 链接 执行 编辑:就是创建和修改C程序的源代码-我 ...

  9. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,Python批量修改文件名...

    处理语料库时,有些文件名字很不规则,为了方便处理,同义按数字顺序修改名称,主要是用到os模块: import os def RenameFiles(srcdir): #将目录下所有的文件命名为数字开头 ...

最新文章

  1. eclipse导入lombok后打不开(如果你的lombok不是最新的,那就来下载最新的)
  2. 关于自动驾驶汽车的7大误解
  3. 在spring cloud eureka中使用ip而不是hostname
  4. 硬盘重新分区后有一个分区表信息丢失的数据恢复
  5. PHP 运动会,运动会成绩管理系统
  6. JAVA手写ArrayList以及LinkedList
  7. 阿里云佘俊泉:创新探索不停,边缘云持续为客户创造价值
  8. Jenikns新建节点、配置节点、新建任务、配置任务、脚本验证
  9. groovy java_在java中使用groovy怎么搞
  10. CF(437C)The Child and Toy(馋)
  11. 早鸟票只剩3天丨为何一定要参加今年的CNCC?
  12. Python 正则表达式匹配中文
  13. 数据库-mysql练习题目2
  14. java中数据库修改语句_java 修改数据库中的数据
  15. 小白都能学会的Spring Boot!
  16. @loj - 2478@「九省联考 2018」林克卡特树
  17. Executor及Executors
  18. python二进制转中文_python3 二进制转中文
  19. Android7.0以上安装时出现“解析软件包错误”
  20. 使用IEEEtrans.cls排版的总结

热门文章

  1. 删除指定文件夹下的小于 4K的所用文件...
  2. Windows 7新睹为快!!
  3. BCH粉必转 | 围绕BCH建立的相关项目和应用列表汇总
  4. zabbix rpm 安装 新增zabbix yum 源 并更新
  5. 关于:last-child的一点见解
  6. Python_03-数据类型
  7. 解决chrome extension无法下载的问题
  8. cocos2d-x3.0rc打包apk遇到的一些问题记录
  9. 用PhpStorm IDE创建GG App Engine PHP应用教程
  10. php-5.3.3安装注意问题