首页 > 其他分享 >凯撒加密

凯撒加密

时间:2023-01-15 18:37:59浏览次数:51  
标签:取模 加密 string int else rst 凯撒


凯撒加密其实就是把每个字母往后面移动3个位置,

文章后面附有凯撒加解密VC6工程下载,主要代码如下:

----------------------------------------------------------------------------------------------

//凯撒加密
string KaiSaEnc(string str)
{
char c;
string rst;
for (int i=0;i<str.length();i++)
{
c=str.at(i);
if (c>=65&&c<=90)//是大写字母时
{
c+=3;//往后移三位
c=c%91; //通过取模来实现循环移动,取模的结果范围为【0,90】
if (c<65)
c+=65;
}
else if (c>=97&&c<=122)//是小写字母时
{
c+=3;//往后移三位
c=c%123; //通过取模来实现循环移动,取模的结果范围为【0,122】
if (c<97)
c+=97;
}
else
{
rst+=c;//其它字符保持原型
continue;
}
rst+=c;
}
return rst;
}

//凯撒解密
string KaiSaDec(string str)
{
char c;
string rst;
for (int i=0;i<str.length();i++)
{
c=str.at(i);
if (c>=65&&c<=90)//是大写字母时
{
c-=3;//往前移三位
if (c<65)
c+=26;
}
else if (c>=97&&c<=122)//是小写字母时
{
c-=3;//往前移三位
if (c<97)
c+=26;
}
else
{
rst+=c;//其它字符保持原型
continue;
}
rst+=c;
}
return rst;
}


int main(int argc, char* argv[])
{

string s="ABCDEFGHIJKLMNOPQRSTUVWXYZ hello Wind";
cout<<"初始字符串:"<<s<<endl<<endl;
cout<<"凯撒加密后:"<<KaiSaEnc(s)<<endl<<endl;
cout<<"凯撒解密后:"<<KaiSaDec(KaiSaEnc(s))<<endl;
cin.get();//暂停
return 0;
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//效果截图如下:

凯撒加密_解密

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



​​

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。







标签:取模,加密,string,int,else,rst,凯撒
From: https://blog.51cto.com/softo/6008847

相关文章

  • 【加密与解密】第四章③
    数据结构主要是对局部变量,全局变量,数组等的识别。1.局部变量局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。函数在入口......
  • 背包加密
    背包加密算法背包加密算法是第一个通用公钥加密算法。它是由RalphMerkle和MertinHellman于1978年开发的。由于它是公钥密码术,因此需要两个不同的密钥。一个是用于加......
  • 这几类网站强烈建议启用 HTTPS 加密,以免信息泄露造成重大损失
    HTTPS其实是有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。......
  • 前端Aes-128-ecb加密解密
    安装:npminstallcrypto-js  注意密码需要16位importutf8from'crypto-js/enc-utf8';importaesfrom'crypto-js/aes';importecbfrom'crypto-js/mode......
  • AEAD加密算法简介
    copyfrom:https://ez.analog.com/ez-blogs/b/engineerzone-spotlight/posts/authenticated-encryption如果仅仅加密,显然只能保证confidentiality,不能证明message是否被......
  • 【加密与解密】第四章②
    4.条件指令设置条件指令的形式是SETccr/m8,其中r/M8是表示8位寄存器或者单字节内存单元。条件设置指令格局处理器定义的16种条件测试一些标志位。把结果记录到操作数当中......
  • 【加密与解密】第四章①
    通过分析汇编代码来理解其代码功能,然后用高级语言重新描述这段代码,逆向分析原始软件的思路,这就是逆向工程。32位软件逆向技术启动函数首先被执行的是启动函数的相关代码......
  • RSA非对称加密和MD5不可逆加密代码示例
    加密算法可以分为三大类:对称加密算法:DES 非对称加密算法: RSAHash算法: MD5登陆密码加密流程:web端用公钥加密密码,server端用私钥解码,将解出的明文用MD5加密......
  • SQL Server 2016 Always Encrypted(始终加密)
    AlwaysEncrypted功能旨在保护AzureSQLDatabase或SQLServer数据库中存储的敏感数据,如信用卡号或身份证号(例如美国社会安全号码)。始终加密允许客户端对客户端应用程......
  • 【加密与解密】第三章⑦
    其他功能1.图形化功能这种模式比文本模式的可视性更好,用户更容易看清函数的代码流程。通过空格切换文本模式或者图形化模式。2.修改可执行文件使用IDA可以直接修改二进......