凯撒加密与解密 C++实现

C++实现的 原理过于简单 不作解释

#include <iostream>
#include <string>
#include <cctype>
using namespace std;

string Caesarencrypt(string s, int key){//凯撒加密
	key = (key + 26) % 26;
	for(int i = 0; i < s.size(); i++){
		if(s[i] == ' ')continue;
		else if(islower(s[i]))
            s[i] = (s[i] - 'a' + key) % 26 + 'a';
		else if(isupper(s[i]))
            s[i] = (s[i] - 'A' + key) % 26 + 'A';
	}
	return s;
}

string Caesardecipher(string s, int key){//凯撒解密
	return Caesarencrypt(s,26 - key);
}

int main(){
	string s;
	int key;//密钥key
	cin>>key;
	cin.get();
	getline(cin,s);
	cout<<Caesarencrypt(s,key)<<endl;//加密验证
	cout<<Caesardecipher(Caesarencrypt(s,key),key);//解密验证
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_33331182/article/details/85390133