循环冗余校验码CRC算法实现和求出碰撞值
循环冗余校验码CRC算法实现和求出碰撞值
答:
八位的碰撞一共有八个
10001101 1010
10011110 1010
10101011 1010
10111000 1010
11000001 1010
11010010 1010
11100111 1010
11110100 1010
代码
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();