信 息 安 全 实 验 报 告 姓 名 : 学 号 : 班 级 : 教 师 : *** 2018-11-15 1 实 验1: 密 码 学 实 验 实 验 目 的 : 编 程 实 现 简 单 古 典 密 码 算 法 , 加 深 对 古 典 密 码 的 理 解 掌 握 简 单 加 解 密 算 法 设 计 原 则 实 验 内 容 : 1. 编 程 实 现 凯 撒 密 码 , 输 入 任 意 明 文 ( 26 个 英 文 字 母 中 的 任 意 一 个 , 不 区 分 大 小 写 ) , 观察 明 文 密 文 关 系 。 程 序 代 码 : #include #include int main() { char passwd[100],encrypted[100]; int i,k=3; printf("请 输 入 明 文 :"); gets(passwd); for(i=0; i= 'A' && passwd[i] <= 'Z') { passwd[i] = ((passwd[i]-'A')+k)%26+'A'; } else if(passwd[i] >= 'a' && passwd[i] <= 'z') { passwd[i] = ((passwd[i]-'a')+k)%26+'a'; } else passwd[i]=' '; } printf("密 文 为 :%s\n",passwd); return 0; } 运 行 结 果 : 2. 编 程 实 现 单 表 代 换 密 码 , 输 入 任 意 明 文 ( 26 个 英 文 字 母 中 的 任 意 一 个 , 不 区 分 大 小 写 ) ,观 察 明 文 密 文 关 系 。 程 序 代 码 : #include 2 #include int main() { char passwd[100],encrypted[100]; int i,k; printf("请 输 入 明 文 :"); gets(passwd); printf("请 输 入 移 动 的 值 (1-25):"); scanf("%d",&k); for(i=0; i= 'A' && passwd[i] <= 'Z') { passwd[i] = ((passwd[i]-'A')+k)%26+'A'; } else if(passwd[i] >= 'a' && passwd[i] <= 'z') { passwd[i] = ((passwd[i]-'a')+k)%26+'a'; } else passwd[i]=' '; } printf("密 文 为 :%s\n",passwd); return 0; } 运 行 结 果 : 3. 自 行 设 计 并 实 现 一 种 简 单 密 码 , 输 入 任 意 明 文 字 符 串 , 输 出 密 文 。 输 入 秘 钥 和 密 文 字 符串 , 输 出 明 文 。 程 序 代 码 : #include