C语言常见校验(加密)操作——异或

2023-11-12

在通讯传输数据过程中,往往要加校验码,今天写了个简单的异或以及解异或的操作代码:

#include <stdio.h>

//这是加密(异或)过程	
int Xor_fun(unsigned int *dat, int size)
{
	int i;
	for(i=0;i<size;i++)
	{
		dat[i+1] = dat[i+1] ^ dat[i];
	}
	return *dat;
}

//这是解密(解异或)过程	
int Dxor_fun(unsigned int *dat, int size)
{
	int i;
	for(i=size-1;i>=0;i--)
	{
		dat[i] = dat[i-1] ^ dat[i];
	}
	return *dat;
}


int main () {
	int i;
	printf("The function is running\n");
	unsigned int buf[29]={0x05,0x08,0x01,0x91,0x2c,
				 		0x00,0x02,0xd1,0x2c,
				 		0x00,0x03,0x2c,0xfa,
				 		0x00,0x04,0xb0,0xc8,
				 		0x00,0x06,0x40,0x96,
				 		0xc8,0xdc,0x21,0x3c,
				 		0xc9,0x40,0x21,0x28};
	Xor_fun(buf,29);
	printf("the result of xor:\n");
	for(i=0;i<29;i++)
	{
		printf("buf[%d] = %#X\n",i,buf[i]);
	}
	
	Dxor_fun(buf,29);
	printf("the result of drox:\n");
	for(i=0;i<29;i++)
	{
		printf("buf[%d] = %#X\n",i,buf[i]);
	}
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言常见校验(加密)操作——异或 的相关文章

  • 16 个必知必会的Python编码技巧,越早知道越好

    介绍 Python 是一门用途广泛的编程语言 它具有大量的库和框架 有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松 编写代码更高效 本文中将探讨一些鲜为人知的 Python 技巧 这些技巧非常有用 但并不广为
  • 均值已知检验方差_了解假设检验

    假设检验是统计推断的另一个重要的应用 在分布未知或部分已知的情况下提出对总体的某种假设 比如总体的数学期望 方差以及分布 与参数估计类似 需要基于假设找到适合的检验统计量 通过计算检验统计量的值来确定是否接受假设 通常在方差已知的情况下我们

随机推荐

  • PAT A1123 2019.09.05 【AVL建树 层序判断完全二叉树】

    1123 Is It a Complete AVL Tree 30 分 An AVL tree is a self balancing binary search tree In an AVL tree the heights of the
  • vue-router跳转用法详解(新手必看)

    vue router是一个单页面的路由器 也就是说所有的跳转都会在这个页面实现 这种只需要跳转页面 不需要添加验证方法的情况 可以使用
  • MySQL学习(六)——SQL的语言规范

    1 SQL的两个重要标准 SQL92 和SQL99 2 SQL分类 数据定义语言 DDL Data Definition Languages 对数据库结构的操作 定义了不同的数据库 表 视图 索引等数据库对象 还可以用来增删改数据库和数据表
  • 微信小程序热门搜索功能实现

    微信小程序点击搜索按钮 弹出遮罩层 显示热门搜索和搜索功能界面 搜索框 遮罩 图层 input 热门搜索 页面元素自动换行 效果 点击搜索框 弹出第二个视图层 显示input搜索框 并自动弹出键盘 代码
  • js几种生成随机颜色方法

  • 栈抽象数据类型及Python实现

    目录 栈的实现 栈的应用 十进制转化为二进制 中缀转后缀 后缀表达式求值 栈的实现 栈Stack 一种有次序的数据项集合 在栈中 数据项的加入和移除都仅发生在同一端 一端叫栈 顶top 另一端叫栈 底base 栈的特性 反转次序 在栈中数据
  • 安卓页面布局中android:gravity与android:layout_gravity的区别

    android gravity 指的是在控件内的元素要排布的方向 android layout gravity 指的是该控件相对于父控件的显示位置 当这俩个属性取多个值时可以使用 来分隔 且在LinearLayout布局中 使用androi
  • 手把手教你用matlab做深度学习(二)- --CNN

    在上一篇博客中 讲解了怎么用matlab搭建CNN网络模型 并给出了训练过程与结果 但是结果不是很满意 大概训练精度在80 左右 现在给出改进方案 1 首先 我们可以把CNN滤波输出数改大点 从原来的32改为numFilters 128 完
  • 在线图片尺寸修改 生成图标

    https www sojson com image change html https www idc yun com index php icon make 工具机 https www idc yun com index php uti
  • python输出希腊字母

    24个希腊字母 一 希腊字母及读音 二 Python输出 三 发现问题 一 希腊字母及读音 大写 小写 英文读音 中文读音 Alpha 阿尔法 Beta 贝塔 Gamma 伽马 Delta 德尔塔 Epsilon 艾普西隆 Zeta 泽塔
  • R数据分析:方法与案例详解--自学笔记

    TOC 目录 第二章 数据结构与基本运算 2 1 数据类型 数值型 numeric 整数 小数 科学数 字符型 character 夹杂单引号或者双引号之间 MR 逻辑型 只能读取T TRUE 或 F FALSE 值 复数型 a bi 原始
  • Java框架简介

    一 框架介绍 1 SpringBoot SpringBoot是Spring家族中一个全新框架 用来简化Spring应用程序的创建和开发过程 特性 1 一个快速开发框架 能够快速创建基于Spring的应用程序 2 能够直接使用java mai
  • Jenkins管理Docker容器

    一 Docker镜像容器手动更新流程 1 Docker安装 curl o etc yum repos d epel repo http mirrors aliyun com repo epel 7 repo curl o etc yum r
  • ajax的添加,在ajax中添加更多参数

    我正在使用AJAX功能 我使用AJAX将3个变量传递到下一页 当我添加第4个变量时 函数不会被调用 Code Browser Support Code function ajaxFunction var ajaxRequest The va
  • 超大规模数据库集群保稳系列之一:高可用系统

    基于过去多年在大规模数据集群保稳方面的实践经验 我们希望能够跟业界进行一些技术交流 美团技术团队举办了第75期技术沙龙 我们邀请到了美团研究员赵应钢担任出品人 同时请邀请到张洪 王占全 蔺瑞超 沈裕锋等4位数据库方向的4位技术专家 围绕进攻
  • C++虚拟机制的压制

    C 中 如果一个类有虚拟函数的时候 当使用该类的指针调用其虚函数的时候 代码会被编译器转换为使用虚函数表中保存的函数地址找到函数后二次调用 即 class A public virtual void Out this gt Inner vi
  • ue4绘制线的三种方式

    第一种方式 是用样条线 简明扼要 但是打包后就消失了 AActor actor world gt SpawnActor lt AActor gt ActorClass actor gt AttachToActor this FAttachm
  • 步进及伺服调试中常见问题

    步进及伺服调试中常见问题 步进 伺服 步进 1 步进电机驱动器可以接收两种脉冲信号 一种单脉冲方式 一种是双脉冲方式 可通过驱动器拨码开关设置进行选择 试分别画出两种方式的信号图 单脉冲方式脉冲信号从脉冲端 PUL 输入 通过方向端 DIR
  • java实现域名解析

    java实现域名解析 域名解析过程 浏览器检查是否有该域名缓存 检查本机host文件之内是否有该域名对应ip 检查本机DNS缓存 递归或迭代向DNS根域名服务器获取该域名ip地址 1 windows控制台 win r 输入cmd进入控制台
  • C语言常见校验(加密)操作——异或

    在通讯传输数据过程中 往往要加校验码 今天写了个简单的异或以及解异或的操作代码 include