数据安全学习概念理解——明文与密文的区别

1.定义
明文,bai是指没有加密的文字(du或者字符串),一般人都能看zhi懂的意思,在通信系dao统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。密文是加了密的的文字,明文是加密之前的文字。密文是对明文进行加密后的报文。
2.特点
明文:有意义的字符或比特集,或通过某种公开的编码标准就能获得的消息。
密文:由密码系统产生的报文和信号,如果不经过码文接收者指示进行码文变换,即解密,他人无法理解,其目的是保证所发信息的机密性。
3.破译方法不同
明文:穷尽搜索,破译密文最简单的方法,就是尝试所有可能的钥匙组合;密码分析,在不知其钥匙的情况下,利用数学方法破译密文或找到钥匙的方法;除密钥的穷尽搜索和密码分析外,常见的方法有:欺骗用户口令密码和在用户输入口令时,应用各种技术手段,“窥视”或“偷窃”密钥内容。密文:直接操作密文数据;分步查询;基于Hash的密文检索方案;密文检索发展方向等。

明文转换为密文的过程通常称为加密。下面是一个简单的基于凯撒密码(Caesar Cipher)原理的示例,展示如何通过C语言实现从明文密文的基本加密。 ```c #include <stdio.h> #include <string.h> void encrypt(char *text, int shift) { for (int i = 0; text[i] != '\0'; ++i) { char ch = text[i]; if (ch >= 'a' && ch <= 'z') { // 小写字母处理 ch = ((ch - 'a' + shift) % 26) + 'a'; } else if (ch >= 'A' && ch <= 'Z') { // 大写字母处理 ch = ((ch - 'A' + shift) % 26) + 'A'; } text[i] = ch; } } int main() { char plaintext[100]; printf("请输入明文字符串: "); fgets(plaintext, sizeof(plaintext), stdin); // 移除换行符(如果有的话) size_t len = strlen(plaintext); if (len > 0 && plaintext[len - 1] == '\n') plaintext[len - 1] = '\0'; int key; printf("输入移位值(作为秘钥): "); scanf("%d", &key); encrypt(plaintext, key); // 调用加密函数 printf("加密后的密文是:%s\n", plaintext); } ``` 上述代码展示了基本思想: - 用户先提供一段待加密文本以及一个整数值作为偏移量(即所谓的“键”或“密钥”)。 - 函数 `encrypt` 遍历字符串并按照指定规则调整字母的位置;非字母字符保持不变。 - 最终输出变换过的内容——也就是密文形式的数据。 请注意,在实际应用场合下需要考虑更多细节比如支持多种编码集、增强安全性等,并且以上例子仅适合学习理解基础概念并不足以保护重要数据安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值