网站首页 > 技术文章 正文
文件加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。包括WINDOWS自带的文件加密功能等。
文件加密按加密途径可分为两类: 一类是WINDOWS系统自带的文件加密功能,一类是采用加密算法实现的商业化加密软件.WINDOWS系统加密方法有五种,商业化的加密软件又分为驱动级加密和插件级加密;如果按加密算法又可分为三类 :对称IDEA 算法、非对称RSA算法、不可逆AES算法.
以上是百度的介绍。
我们今天要讲的是数据加密,数据加密解密是一个常用的功能,原理也很简单,就是使用异或运算。请先看下面的例子。
#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(" 需要加密原文 %c %7s\n", plaintext, itoa(plaintext, buffer, 2)); printf(" 密钥 %c %7s\n", secretKey, itoa(secretKey, buffer, 2)); printf("加密后的文本 %c %7s\n", ciphertext, itoa(ciphertext, buffer, 2)); printf("解密后的文本 %c %7s\n", decodetext, itoa(decodetext, buffer, 2)); return 0;}
显示的结果会是:
char ASCII 需要加密原文 a 1100001 密钥 ! 100001加密后的文本 @ 1000000解密后的文本 a 1100001
认真看看相信大家都可以学会。我们这里可以看到解码后文本和原文是一样的。
这种加密与解密使用一样密钥的也相对简单,称为对称加密算法。
当然那么也就还有非对称加密算法。
文章到这里就结束了,另外大家如果想学习c语言或者c++关注后私信发送“c语言”或者“c++”获取群号。可领取学习资料,和大家一起学习交流,或有免费直播讲解cc++,和帮助答疑。到这里大家应该知道怎么用了吧。还不太懂的话,拿代码去研究研究。还不懂的可以加群问我。学习愉快。
觉得我文章还可以的可以关注,转发,收藏,评论。 拜拜
猜你喜欢
- 2024-09-27 分享一段神奇的小代码:那天是周几啊
- 2024-09-27 C语言备忘录 - 18. 文件基础(c语言备份文件)
- 2024-09-27 线性表顺序存储结构求集合的并,交,补,差(源代码附上 超详细)
- 2024-09-27 如何轻松使用 C 语言实现一个栈?(c语言如何建立一个栈)
- 2024-09-27 C语言学习:写一个文件的实例,详解(收藏)
- 2024-09-27 C语言学习过程代码记录(c语言代码例子)
- 2024-09-27 输出随机数字:C之法(c语言怎么随机输出字母)
- 2024-09-27 C++头文件和std命名空间(精辟)(c++头文件类型)
- 2024-09-27 【C高手秘籍】在处理复杂数据结构时,如何提高代码的运行效率?
- 2024-09-27 【C语言】(25)文件包含(c语言中,文件由什么组成)
- 1516℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 582℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 518℃MySQL service启动脚本浅析(r12笔记第59天)
- 488℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 487℃启用MySQL查询缓存(mysql8.0查询缓存)
- 473℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 453℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 452℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)