赞
踩
这个加密算法是一个简单,适合于c语言新手的算法。
算法可以加密任何符号,包括汉字,空格
目录
其实很简单,众所周知每一个字符都有一个其所对应的ASCII码,所以只需要将要加密的文本转化为一串ASCII码,然后对这一串数据进行操作即可,这里用的是rand函数。当然我们可以用time函数让每次的随机数不一样。
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- long miwen = time(0);//生成种子即密匙
- int jiami(long *wenben,int shu)//加密函数
- {
- srand(miwen);
- int mijia[99], i;
- for (i = 0; i <= 98; i++)
- {
- mijia[i] = rand() % 21;//生成随机数组
- }
- for (i = 0; i <= shu-2; i++)
- {
- wenben[i] = wenben[i] + mijia[i];//加密
- }
- return 0;
- }
-
-
-
- int main()
- {
- char wenben[99];
- int i = 0,j=0,aa=1;
- for (j = 0; j < 99; j++)// 文本初始化
- {
- wenben[j] = '|';
- }
- j = 0;
- long wenbenbian[99] = {0};//密文初始化
- printf("即将加密的文本:");
- do //接收文本
- {
- wenben[i] = getchar();
- putchar(wenben[i]);
- i++;
- } while (wenben[i-1]!='\n');
- i = 0;
- do //转化文本为密文
- {
- wenbenbian[i]=wenben[i];
- i++;
- } while (i!=98);
- printf("\n");
- i = 0;
- do //分析文本数量
- {
- if (wenbenbian[i] == '|')
- {
- j = i-1;
- aa = 0;
- }
- i++;
- } while (aa);
- jiami(wenbenbian, j);//加密
- printf("\n");
- printf("密匙:%ld\n", miwen);
- i = 0;
- printf("密文:");
- do
- {
- printf("%ld",wenbenbian[i]);
- printf(" ");
- i++;
- } while (i!=j);
- while (1);
- }
其实就是加密的逆运算,不过有个处理密文的过程。
- #include<stdio.h>
- #include<stdlib.h>
-
- int main()
- {
- int i=0,j=0,aa=1;
- long mishi;
- char wenben[99], wenben2[99];
- int wenben1[99] = {0}; //初始化密文
- for (i = 0; i < 99; i++) //初始化文本
- {
- wenben2[i] = ' ';
- }
- i = 0;
- printf("输入密文:");
- do // 提取密文
- {
- wenben[i] = getchar();
- putchar(wenben[i]);
- if (wenben[i] == ' '|| wenben[i] == '\n')
- {
- if (wenben[i] == '\n')
- {
- aa = 0;
- }
- wenben1[j] = atoi(wenben);
- j++;
- i = -1;
- }
- i++;
- } while (aa);
- printf("\n");
- printf("输入密匙:");
- scanf_s("%ld",&mishi);
- srand(mishi); //种子即密匙
- int mijia[99];
- for (i = 0; i <= 98; i++)
- {
- mijia[i] = rand() % 21;
- }
- for (i = 0; i <= j-2; i++) //解密
- {
- wenben1[i] = wenben1[i] - mijia[i];
- }
- for (i = 0; i <= j; i++)
- {
- wenben2[i] = wenben1[i];
- }
- printf("文本:%s", wenben2);
- while (1);
- }
这只是一个适合初学者的小程序,可以作为无聊时的解闷,实用性可能是有点的,不过加密量和效率都很低。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。