数据加密解密的原理也很简单,就是使用异或运算。请先看下面的代码:

#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语言对数据或文件内容进行加密相关推荐

  1. c++文件内容与输入内容进行比较_使用位运算对数据或文件内容进行加密

    数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称"密码")将文件的内容加密.比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是& ...

  2. Linux下C语言实现多线程排序文件内容

    一.要求及主要函数 使用多线程,编写一个并行程序,将目录中的多个文件里的内容进行排序. 文件内容格式为: <数字><空格><数字> 例如: 0 1 2 3 4 5 ...

  3. Python实现对文件内容进行加密

    目录 Small-fish文件加密库 1.加密 要加密文件内容 加密后内容 2.解密 1.代码讲解 字典 加密函数 解密函数 用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Py ...

  4. java 实现文件内容的加密和解密

    转载:http://xiaoxiaokuang.iteye.com/blog/1440031 package com.umapp.test; import java.io.FileInputStrea ...

  5. c语言将数据写入文件后乱码_html文件的下载,如何使用字节流,如何使用转换流...

    package com.jd.io;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileO ...

  6. c语言怎么读取mhx文件内容,C语言重新学习――基础杂类

    1.编译运行 我们一般编译C语言程序,用的是GCC编译器, GCC编译:gcc 文件名.c GCC连接:gcc -o 可执行文件名 文件名1.c,文件名2.c..... 执行可执行文件:直接输入文件名 ...

  7. c语言创建一个bat文件内容,BAT(批处理)文件编写详细手册

    <BAT(批处理)文件编写详细手册>由会员分享,可在线阅读,更多相关<BAT(批处理)文件编写详细手册(41页珍藏版)>请在人人文库网上搜索. 1.BAT(批处理)文件编写详细 ...

  8. C语言实现数据写入文件

    向文件中写入数据(C语言) 在分析数据时,首先要解决数据的保存问题,c中提供了相应的函数来实现将数据写入指定文件中的功能 fopen函数 使用 fopen( ) 函数来创建一个新的文件或者打开一个已有 ...

  9. c语言将数据写入文件后乱码_C语言 文件写入输出。文件载入后输出是乱码,纠结啊!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void save1() //将工具的基本信息保存至文件:"工具基本信息.file" { FILE*fp; //定义fp是一个指向FI ...

最新文章

  1. 【Flutter】Animation 动画 ( Flutter 动画的核心类 | Animation | CurvedAnimation | AnimationController | Tween )
  2. 笨方法学python--变量和命名
  3. 在线学习在爱奇艺信息流推荐业务中的探索与实践
  4. MVC架构中的Repository模式 个人理解
  5. Shadow Properties之美(一)【Microsoft Entity Framework Core随笔】
  6. 电商渠道转化越来越低,究竟怎样引流才能提高转化率?
  7. Android BroadcastReceiver示例教程
  8. c语言对整形indexing,C语言运算符另类分类法
  9. 关于简单的打地鼠游戏开发总结
  10. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
  11. 人人 突破 权限 相册 查看
  12. 四 微信公众号 基础参数说明
  13. 计算机基础知识与Java语言概述(DAY1)
  14. h5逻辑_H5+app 混合开发
  15. 大型网站架构之架构演变
  16. 认识涤生大数据的几个月,彻底改变了我
  17. ps处理几亿个像素点的照片时,如何保存为几十兆而又很清晰
  18. 美国研究生计算机心理,美国心理学研究生大学排名一览表
  19. 一台手机如何在微信语音/视频通话时把声音录下来
  20. CSDN VIP特权(添加自定义模块与域名设置)

热门文章

  1. 写了placement new也要写placement delete——条款52
  2. Android ArcGIS基础使用教程(10.2.8)
  3. 为了整出自主的CPU,他们死磕了20年。
  4. HTML5的基础认知 与 css的部分内容
  5. javascript/js 判断是否安装flash player插件,提示安装方法。
  6. 网上问政有用吗?如何能更快得到回复?
  7. 炉石传说外 挂记(序)
  8. 电脑重装系统word从第二页开始有页眉页脚如何设置
  9. 用css给我画一朵花
  10. 供应商网店货源哪里找?直播带货靠谱货源(电商教程)