给你写了一个.
def convert(c, key, start = 'a', n = 26):
a = ord(start)
offset = ((ord(c) - a + key)%n)
return chr(a + offset)
def caesarEncode(s, key):
o = ""
for c in s:
if c.islower():
o+= convert(c, key, 'a')
elif c.isupper():
o+= convert(c, key, 'A')
else:
o+= c
return o
def caesarDecode(s, key):
return caesarEncode(s, -key)
if __name__ == '__main__':
key = 3
s = 'Hello world!'
e = caesarEncode(s, key)
d = caesarDecode(e, key)
print e
print d
运行结果:
Khoor zruog!
Hello world!
创建一个列表把你要用来替换的字符按顺序存储进去,通过查找你输入密码的下标位置,把下标位置减3在下标获取就行了
/*
同学,ACM题目得自己做啊.
这种绝对属于简单题啊.
同学,加油啊.
*/
#includestdio.h
#includectype.h
#define maxlen 100
char *KaisaEncode(char *str,int key)
{//加密
int i;
int ch;
for(i=0;str[i]!='\0';i++)
{
ch=str[i];
if(isupper(ch))
ch=(ch-'A'+key+26)%26+'A';
else if(islower(ch))
ch=(ch-'a'+key+26)%26+'a';
str[i]=ch;
}
return str;
}
int main(void)
{
int testCase;
int key;
char s[maxlen];
scanf("%d",testCase);
for(;testCase0;testCase--)
{
scanf("%d%s",key,s);
KaisaEncode(s,key);
printf("%s\n",s);
}
return 0;
}
区分大小写的凯撒密码。
在凯撒密码的基础上针对大写与小字字符区分处理即可:
解密只需要将7换成19(因为26-7=19),或者使用-7也可以:
print(caesarcipher(caesarcipher('Student!', 7),19))
python中凯撒密码num=num+key是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。根据查询相关公开信息,凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替代方法将信息中的每一个英文字母循环替换为字母表序列中该字符后面的第k个字符(k为密钥)。加密方法:C=(P+k)mod26,P为原文字符,k为密钥,解密方法:P=(C-3)mod26。
1、猪圈密码(亦称朱高密码、共济会暗号、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。
2、恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
3、标准银河字母是一个简单的替代暗号,用不同的符号取代拉丁字母。SGA可以在不同的语言中使用,比如在游戏《Minecraft》,《指挥官基恩》中。
扩展资料:
1、猪圈密码优缺点:
优点:简单,方便,容易书写,适合书面上的密码通讯,并且好记。
缺点:"太出名"密码最怕的就是太出名,一但出名它就会毫无秘密可言,知道的人就知道,不知道的人就不知道。
2、凯撒密码例子:
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG ;
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ。
3、标准银河字母附魔语言:
Minecraft附魔台魔咒的名字是从一长串的单词中随机构成的。先从以下列表中选取三到五个词互相组合生成魔咒名字,然后使用SGA显示出来。注意,这些名字实际上没有任何意义,且不会和物品一起保存,它们只显示在附魔台的界面上。
参考资料来源:百度百科-猪圈密码
参考资料来源:百度百科-凯撒密码
参考资料来源:百度百科-标准银河字母