资源简介
用维吉尼亚密码实现控制台对文件的加解密 形式:
cipher -e/-d key inputfile outputfile
代码片段和文件信息
#include
#include
#define MAX_LEN 100
//加密函数
char* Encryption(char Text[]char Key[]char cipherText[]int textLen){
int i;
for (i=0;i {
if (*(Text+i)>=‘a‘)
{
*(cipherText+i)=((*(Text+i)-‘a‘)+(*(Key+i)-‘a‘))%26+‘a‘;
}else if (*(Text+i)<=‘Z‘)
{
*(cipherText+i)=((*(Text+i)-‘A‘)+(*(Key+i)-‘a‘))%26+‘A‘;//秘钥只能为小写字母组成
}
}
//转换大小写
for (i=0;i {
if (cipherText[i]>=‘a‘&&cipherText[i]<=‘z‘){
cipherText[i]-=32;
}
else if (cipherText[i]>=‘A‘&&cipherText[i]<=‘Z‘)
{
cipherText[i]+=32;
}
}
}
//解密函数
char* Decryption(char Text[]char Key[]char cipherText[]int cipherLen){
int i;
for (i=0;i {
if (*(cipherText+i)>=‘a‘)
{
if((*(cipherText+i)-‘a‘)-(*(Key+i)-‘a‘)<0){
*(Text+i)=(26+((*(cipherText+i)-‘a‘)-(*(Key+i)-‘a‘))%26)+‘a‘;
}else{
*(Text+i)=((*(cipherText+i)-‘a‘)-(*(Key+i)-‘a‘))%26+‘a‘;
}
}else if (*(Text+i)<=‘Z‘)
{
if((*(cipherText+i)-‘A‘)-(*(Key+i)-‘a‘)<0){
*(Text+i)=(26+((*(cipherText+i)-‘A‘)-(*(Key+i)-‘a‘))%26)+‘A‘;
}else{
*(Text+i)=((*(cipherText+i)-‘A‘)-(*(Key+i)-‘a‘))%26+‘A‘;
}//秘钥只能为小写字母组成
}
}
//转换大小写
for (i=0;i {
if (Text[i]>=‘a‘&&Text[i]<=‘z‘){
Text[i]-=32;
}
else if (Text[i]>=‘A‘&&Text[i]<=‘Z‘)
{
Text[i]+=32;
}
}
}
//明密文处理函数(去掉空格和标点符号)
char* chuliText(char text[]){
int ik;
//剔除标点符号和空格
for (i=0k=0;text[i]!=0;i++)
{
if ((text[i]>=‘a‘&&text[i]<=‘z‘)||(text[i]>=‘A‘&&text[i]<=‘Z‘))
{
text[k]=text[i];
k++;
}
}
text[k]=‘\0‘;
return text;
}
int main(int argcchar *argv[]){
FILE *fp;
char plainText[MAX_LEN]={0}key[MAX_LE
- 上一篇:Gabor滤波器纹理特征提取
- 下一篇:电梯仿真.zip
相关资源
- Linux环境下的文件安全传输(C/C++)
- 基于哈夫曼编码的文件压缩解压程序
- 操作系统模拟实现单级目录的文件系
- Windows下Socket文件数据传输
- C++文件加密系统
- 操作系统的理发师问题解决文件打包
- 生成指定长度的Wav空白文件--
- 产生输出到本地文件的随机数
- 传热学非稳态热传导问题网格划分数
- 多用户多级目录文件系统c++源码(含
- 滴水逆向 文件操作pe修改C语言源代码
- VC++ 实现将本地文件通过HTTP上传到网
- C语言矩阵相乘动态数组,文件读写
- 模拟文件系统的c语言实现
-
mfc通过xm
l文件生成word文档 - 国密SM4的5中模式C语言实现,vs工程,
- c++读取ini文件封装类
- SiamFCdemo运行所需stats.mat文件
- 简易通讯录的实现,可以显示,修改
- C语言读取BMP文件
- 基于linux系统下的C银行模拟系统文件
- C++ 编写解析Torrent文件的类
- vs2010下c语言编写c/s socket 文件内容传
- 基于VS2010的C++小学生四则算数测试系
- windows 64位redis2.6 API C++库和头文件
- MFC 计算文件MD5码 VC++
- VC++垃圾文件清理工具源码.rar
- 基于mfc tcp 文件传输 源代码
- MFC(C++)程序与文件关联后缀名含C
- Psapi.lib psapi.h VC6.0 文件
评论
共有 条评论