用C语言对数据或文件内容进行加密
数据加密解密的原理也很简单,就是使用异或运算。请先看下面的代码:
#include <stdio.h>
#include <stdlib.h>int main(){char plaintext = 'a'; // 明文char secretkey = '!'; // 密钥char ciphertext = plaintext ^ secretkey; // 密文char decodetext = ciphertext ^ secretkey; // 解密后的字符char buffer[9];printf(" char ASCII\n");// itoa()用来将数字转换为字符串,可以设定转换时的进制(基数)// 这里将字符对应的ascii码转换为二进制printf(" plaintext %c %7s\n", plaintext, itoa(plaintext, buffer, 2));printf(" secretkey %c %7s\n", secretkey, itoa(secretkey, buffer, 2));printf("ciphertext %c %7s\n", ciphertext, itoa(ciphertext, buffer, 2));printf("decodetext %c %7s\n", decodetext, itoa(decodetext, buffer, 2));return 0;
}
运行结果:
char ASCIIplaintext a 1100001secretkey ! 100001 ciphertext @ 1000000 decodetext a 1100001
plaintext 与 decodetext相同,也就是说,两次异或运算后还是原来的结果。
这就是加密的关键技术:
- 通过一次异或运算,生成密文,密文没有可读性,与原文风马牛不相及,这就是加密;
- 密文再经过一次异或运算,就会还原成原文,这就是解密的过程;
- 加密和解密需要相同的密钥,如果密钥不对,是无法成功解密的。
如果加密和解密的密钥不同,则称为非对称加密算法。在非对称算法中,加密的密钥称为公钥,解密的密钥称为私钥,只知道公钥是无法解密的,还必须知道私钥。
用C语言对数据或文件内容进行加密相关推荐
- c++文件内容与输入内容进行比较_使用位运算对数据或文件内容进行加密
数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称"密码")将文件的内容加密.比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是& ...
- Linux下C语言实现多线程排序文件内容
一.要求及主要函数 使用多线程,编写一个并行程序,将目录中的多个文件里的内容进行排序. 文件内容格式为: <数字><空格><数字> 例如: 0 1 2 3 4 5 ...
- Python实现对文件内容进行加密
目录 Small-fish文件加密库 1.加密 要加密文件内容 加密后内容 2.解密 1.代码讲解 字典 加密函数 解密函数 用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Py ...
- java 实现文件内容的加密和解密
转载:http://xiaoxiaokuang.iteye.com/blog/1440031 package com.umapp.test; import java.io.FileInputStrea ...
- c语言将数据写入文件后乱码_html文件的下载,如何使用字节流,如何使用转换流...
package com.jd.io;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileO ...
- c语言怎么读取mhx文件内容,C语言重新学习――基础杂类
1.编译运行 我们一般编译C语言程序,用的是GCC编译器, GCC编译:gcc 文件名.c GCC连接:gcc -o 可执行文件名 文件名1.c,文件名2.c..... 执行可执行文件:直接输入文件名 ...
- c语言创建一个bat文件内容,BAT(批处理)文件编写详细手册
<BAT(批处理)文件编写详细手册>由会员分享,可在线阅读,更多相关<BAT(批处理)文件编写详细手册(41页珍藏版)>请在人人文库网上搜索. 1.BAT(批处理)文件编写详细 ...
- C语言实现数据写入文件
向文件中写入数据(C语言) 在分析数据时,首先要解决数据的保存问题,c中提供了相应的函数来实现将数据写入指定文件中的功能 fopen函数 使用 fopen( ) 函数来创建一个新的文件或者打开一个已有 ...
- c语言将数据写入文件后乱码_C语言 文件写入输出。文件载入后输出是乱码,纠结啊!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void save1() //将工具的基本信息保存至文件:"工具基本信息.file" { FILE*fp; //定义fp是一个指向FI ...
最新文章
- 【Flutter】Animation 动画 ( Flutter 动画的核心类 | Animation | CurvedAnimation | AnimationController | Tween )
- 笨方法学python--变量和命名
- 在线学习在爱奇艺信息流推荐业务中的探索与实践
- MVC架构中的Repository模式 个人理解
- Shadow Properties之美(一)【Microsoft Entity Framework Core随笔】
- 电商渠道转化越来越低,究竟怎样引流才能提高转化率?
- Android BroadcastReceiver示例教程
- c语言对整形indexing,C语言运算符另类分类法
- 关于简单的打地鼠游戏开发总结
- 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
- 人人 突破 权限 相册 查看
- 四 微信公众号 基础参数说明
- 计算机基础知识与Java语言概述(DAY1)
- h5逻辑_H5+app 混合开发
- 大型网站架构之架构演变
- 认识涤生大数据的几个月,彻底改变了我
- ps处理几亿个像素点的照片时,如何保存为几十兆而又很清晰
- 美国研究生计算机心理,美国心理学研究生大学排名一览表
- 一台手机如何在微信语音/视频通话时把声音录下来
- CSDN VIP特权(添加自定义模块与域名设置)