恺撒密码的加密程序 恺撒密码是公元前50 年古罗马恺撒用过的密码,罗马的军队用凯撒密码(三个字母表轮换)进行通信,加密方法是把a 变成D,b 变成E,c 换成F,依次类推,z 换成C
将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢记》
恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗
其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息
苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替换密码作了详细的描写
恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替
这种密码替换通常叫做恺撒移位密码,或简单的说,恺撒密码
尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从 1 到25 个位置的移位我们都可以使用, 因此,为了使密码有更高的安全性,单字母替换密码就出现了
如: 明码表 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 密码表 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M 明文 F O R E S T 密文 Y G K T L Z 只需重排密码表二十六个字母的顺序,允许密码表是明码表的任意一种重排,密钥就会增加到四千亿亿亿多种,我们就有超过4× 1027 种密码表
破解就变得很困难
用C 语言编写恺撒密码的加密解密程序,要求: 每个字符替换为其在ASCII 码中前29 个字符的符号
例如,输入 k,输出为 N
加密: 方法一: #include main() { char str[100]; int i=0; gets(str); while (str
='\0') { printf("%c",str-29); i++; } } 方法二: #include main() { char