美文网首页信息安全
信息安全——凯撒密码

信息安全——凯撒密码

作者: 九入青冥 | 来源:发表于2019-06-12 08:31 被阅读2次

 

信息安全——凯撒密码

#include<stdio.h>

#include<iostream>

#include<stdlib.h>

#include <string.h>

#define N 100

using namespace std;

//凯撒密码

//加密公式 f(a)=(a+3) mod 26

//解密公式 f(a)=(a+23) mod 26

void Encry(char *strI,int numB,int model);//加密公式函数

void Decry(char *strI,int numB,int model);//解密公式函数

int FileOut(char *strI);

int main()

{

char str[N];

int model;

int numB;

while(1)

{

cout<<"凯撒密码:请选择模式:\n";

cout<<"1.加密\n";

cout<<"2.解密\n";

cout<<"3.退出\n";

cin>>model;

cout<<endl;

switch(model)

{

case 1:

cout<<"请输入要加密的字符串:";

cin>>str;

cout<<"请输入该密码算法的偏移数量:";

cin>>numB;

Encry(str,numB,model);

cout<<endl;

break;

case 2:

cout<<"请输入要解密的字符串:";

cin>>str;

cout<<"请输入原密码算法的偏移数量:";

cin>>numB;

Decry(str,numB,model);

cout<<endl;

break;

case 3:

return 0;

break;

default:

break;

}

}

return 0;

}

void Encry(char *strI,int numB,int model)

{

//明文串 秘钥 功能模式

if(model==1)

{

for(int i=0; i<strlen(strI); i++)

{

if(strI[i] >= 'A' && strI[i] <= 'Z')

{

strI[i] = ((strI[i]-'A')+numB)%26+'A';

}

else if(strI[i] >= 'a' && strI[i] <= 'z')

{

strI[i] = ((strI[i]-'a')+numB)%26+'a';

}

}

cout<<"加密完成:"<<strI<<endl;

FileOut(strI);

cout<<"已输出到文件!"<<endl;

}

else

{

cout<<"该模式不支持此项功能!"<<endl;

}

}

void Decry(char *strI,int numB,int model)

{

if(model==2)

{

int num;

num=26-numB;

for(int i=0; i<strlen(strI); i++)

{

if(strI[i] >= 'A' && strI[i] <= 'Z')

{

strI[i] = ((strI[i]-'A')+num)%26+'A';

}

else if(strI[i] >= 'a' && strI[i] <= 'z')

{

strI[i] = ((strI[i]-'a')+num)%26+'a';

}

}

cout<<"解密完成:"<<strI<<endl;

}

else

{

cout<<"该模式不支持此项功能!"<<endl;

}

}

int FileOut(char *strI)

{

FILE *fp = NULL;

int iWrite=0;

int len=strlen(strI);

if( strI == NULL || len ==0 )

return false;

//! 打开文件句柄

if( (fp = fopen( "密文.txt","w" )) == NULL ) // 文本模式写

return false;

iWrite = fwrite(strI, 1, len, fp );

fclose(fp);

if( iWrite>0 )

return true;

else

return false;

}

相关文章

  • 信息安全——凯撒密码

    #include #include #include #include #define N 100 using n...

  • 凯撒密码破译

    凯撒密码破译 from my csdn blog 信息安全原理 hw1 Caesar: AWPLDPPYNCJA...

  • 1.1 对称&不对称加密

    【一 直观感受下加密这件大事】 1 凯撒密码:对军事命令进行加密,确保信息被拦截后,对方也无法解读。凯撒密码的加...

  • 凯撒密码

    凯撒密码最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。这是一种位移加密方式,只...

  • Design & Coed 13:凯撒密码

    凯撒密码 Caesars Cipher 凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密...

  • Caesars Cipher(凯撒密码)

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • 凯撒密码

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • FCC-JS-BAS-Caesars Cipher-凯撒密码

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • free code camp,凯撒密码,运用String.cha

    凯撒密码 (让上帝的归上帝,凯撒的归凯撒) 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密...

  • 【笔记】CTF入门指南

    【考项分类】Web: 网页安全Crypto: 密码学(凯撒密码等)PWN: 对程序逻辑分析 系统漏洞利用Misc:...

网友评论

    本文标题:信息安全——凯撒密码

    本文链接:https://www.haomeiwen.com/subject/tjahfctx.html