CRC冗余校验码源码代码c语言,循环冗余校验码CRC算法实现和求出碰撞值

循环冗余校验码CRC算法实现和求出碰撞值

循环冗余校验码CRC算法实现和求出碰撞值

e1aacbf3ed26790eea7f3ac1f6fc4445.png

答:

八位的碰撞一共有八个

10001101 1010

10011110 1010

10101011 1010

10111000 1010

11000001 1010

11010010 1010

11100111 1010

11110100 1010

ffdf29e835a6f7848d50f9b9b0f13af3.png

代码

a=['1', '0', '0', '1', '1'] #除数

b=['1', '0', '1', '0', '1', '0', '1', '1'] #校验数值

c=['0', '0', '0', '0']

z=b+c

k=4

x=int(''.join(a),2)#先转为字符串再转换成整数

y=int(''.join(z[0:5]),2)

while k

xy=list(bin(x^y)[2:])#整数异或

if len(a)-len(xy)>len(z)-k+1:#不足5位结束

break

else:

t=k

k += len(a) - len(xy)

xy+=z[t+1:t+1+len(a)-len(xy)]#借位

y=int(''.join(xy),2)

if len(xy)<4:

xy.insert(0,(4-len(xy))*'0')

K=xy #求出CRC

n=128 #10000000

N=0

while n<=256:#遍历求出碰撞

d = list('{:08b}'.format(n))

z = d + c

y = int(''.join(z[0:5]), 2)

k=4

while k < len(z):

xy = list(bin(x ^ y)[2:])

if len(a) - len(xy) > len(z) - k + 1:

break

else:

t = k

k += len(a) - len(xy)

xy += z[t + 1:t + 1 + len(a) - len(xy)]

y = int(''.join(xy), 2)

if len(xy) < 4:

xy.insert(0, (4 - len(xy)) * '0')

if xy==K:

print(''.join(d),end=' ')

print(''.join(xy))

N+=1

n+=1

print(N)#总数

循环冗余校验码CRC算法实现和求出碰撞值相关教程

crc16校验代码中 多项式码明明是8005 为什么要用A001来异或,还

crc16校验代码中 多项式码明明是8005 为什么要用A001来异或,还有CRC16-REV=A001是什么意思 0x8005=1000 0000 0000 0101B 0xA001=1010 0000 0000 0001B 对比两个二进制高低bai位正好是完du全相反的,CRC校验分为zhi正向校验与反向校验。正dao向校验高位在左,

Web - JS掌握JavaScript中的数组、循环、函数等技术的使用(网页

Web - JS掌握JavaScript中的数组、循环、函数等技术的使用(网页轮播图) 完成网页轮播图效果,配套的还有随机点名器训练。 代码写得有一些乱,其中有些问题的解决方案也不算好,勉勉强强的自己完成了这个任务训练,0.0~ 代码如下 !DOCTYPE htmlhtml lang=enhea

Web - JS当中的数组、循环、随机数和定时器的使用训练(随机点名

Web - JS当中的数组、循环、随机数和定时器的使用训练(随机点名器) 随机点名器训练,配套的还有网页轮播图训练。 做出来的效果: 代码如下 !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 meta name=viewport content=width=device-width, initial-scale=1

RNN循环神经网络

RNN循环神经网络 RNN中Embedding的一些理解 一、RNN 循环神经网络_embedding替换独热码 1. 1循环核: 1.2 循环核按时间步展开 1.3循环计算层 二、tf描述一个循环计算层 2.1基本函数 2.1进入RNN时,x_train的维度 2.3循环计算过程 三、Embedding编码代替独热码

js、css代码规范化以及git校验配置

js、css代码规范化以及git校验配置 eslint和 stylelint基于vscode编辑器进行配置 一、eslint vscode安装插件:eslint插件 prettier-code-formatter插件 全局安装eslint插件:sudo npm install eslint -g 初始化.eslintrc.js:eslint —init 根据提示指定 配置

学习日报1031

学习日报1031 循环结构 功能 重复的执行一些内容 语法 while (条件){ 需要重复做的事情;} 需求 打印三次星花 语法2 while (条件){ 条件如果成立,会执行这里的内容;}条件不成立就会来到这里 例子 输出有序的数字 int i = 0;while (i 6) { System.out.println(

【c语言】当你只会循环时,你也可以打印出好看的图案

【c语言】当你只会循环时,你也可以打印出好看的图案 当你已经学会了循环,这时加上顺序,选择结构,你已经将三大结构学会了,这时我们可以利用已学过的内容打印一些好看的图案 在我看来,打印这些图案的核心思想在于构造一个类似矩阵或者坐标系的东西,理所

1008 数组元素循环右移问题 (20分)【java题解】

1008 数组元素循环右移问题 (20分)【java题解】 题解: 与其在输入后 移动数组,不如就在输入时就开始 ‘移动’ import java.util.*;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值