当前位置: 首页 > news >正文

北京朝阳做网站如何自己开个网站平台

北京朝阳做网站,如何自己开个网站平台,孝南区建设局网站,网页设计与网站建设 1.班级网站. 2.个人主页. 3.求职招聘.实验四、古典密码#xff08;上#xff09; 一、实验目的 1、 通过本次实验#xff0c;了解古典加密算法的主要思想#xff0c;掌握常见的古典密码。 2、 学会应用古典密码#xff0c;掌握针对部分古典密码的破译方法。 二、原理简介 古典密码的编码方法主要有两种上 一、实验目的 1、 通过本次实验了解古典加密算法的主要思想掌握常见的古典密码。 2、 学会应用古典密码掌握针对部分古典密码的破译方法。 二、原理简介 古典密码的编码方法主要有两种置换和代替。置换密码重新排列明文中字符的顺序不改变字符本身代替密码不改变明文中的字符顺序而是将字符替换成其他字符。置换密码通常主要包括列置换和周期置换 2种代替密码则主要包括单表代替密码和多表代替密码2种。 三、实验内容 1、仿射密码Affine Cipher 1、算法原理 加密原理 由式 c (k * p b) mod 26 可得仿射密码的加密原理为先将明文进行0~25字母编码再按照该式计算出密文对应位置的字母编码最后从密文的字母编码还原出密文对应位置的字母得到密文。 解密原理 由 c (k * p b) mod 26得p (c – b) * (1/k) mod 26其中1/k为k在模26下的逆元。先将密文进行0~25字母编码再按照该式计算出明文对应位置字母的编码最后从明文的字母编码还原出明文字母得到明文。 2、算法流程 本算法的大致流程如下图所示 3、算法的代码实现C语言 #include stdio.h #include string.hchar plaintext[10010] { 0 }; char ciphertext[10010] { 0 }; int plain[10010] { 0 }; int cipher[10010] { 0 }; int k, b; void encrypt(char plaintext[], int k, int b); void decrypt(char ciphertext[], int k, int b); int euclid(int a, int b); int inverse(int a);int main() {int input;printf(请输入选项1为加密2为解密\n);scanf(%d, input);printf(请输入k的值\n);scanf(%d, k);printf(请输入b的值\n);scanf(%d, b);printf(你输入的值为k %d, b %d\n, k, b);if(input 1){// 加密printf(请输入要加密的明文);scanf(%s, plaintext);printf(加密结果\n);encrypt(plaintext, k, b);}else if(input 2){// 解密printf(请输入要解密的密文);scanf(%s, ciphertext);printf(解密结果\n);decrypt(ciphertext, k, b);}elseprintf(错误的选项只能为1或2。程序退出。);return 0; }void encrypt(char plaintext[], int k, int b) {int i;if(euclid(k, 26) ! 1){printf(wrong k. try again\n);return;}else{for(i 0;i strlen(plaintext);i ){plain[i] plaintext[i] - a;cipher[i] (plain[i] * k b) % 26;ciphertext[i] cipher[i] a;}puts(ciphertext);return;}return; }void decrypt(char ciphertext[], int k, int b) {int i;for(i 0;i strlen(ciphertext);i ){cipher[i] ciphertext[i] - a;plain[i] ((cipher[i] - b) * inverse(k)) % 26;if(plain[i] 0){plaintext[i] plain[i] a;}else{plaintext[i] plain[i] 26 a;}}puts(plaintext);return; }int euclid(int a, int b) {if(b 0){return a;}else{return euclid(b, a % b);} }int inverse(int a) {int i;for(i 1;i 26;i ){if((a * i) % 26 1){return i;}}return -1; }4、算法测试 加密过程演示 参数k 3, b 3, 明文ciphertext 运行截图 得到的密文jbwypcipui 解密过程演示 参数k 3, b 3, 密文jbwypcipui 运行截图 得到的明文ciphertext “鲁棒性” 1、输入了错误的选项 2、输入的k和26不互素 2、单表代替密码Substitution Cipher 1、算法原理 加密原理利用代替表将明文中的每个字符映射到密文。 解密原理通过对代替表进行反向查找由密文映射回明文。 2、算法流程 加密流程 解密流程 3、算法的代码实现C语言 #include stdio.h #include string.hchar sub_table[26] {q,a,z,w,s,x,e,d,c,r,f,v,t,g,b,y,h,n,u,j,m,i,k,l,o,p}; char plaintext[10010] { 0 }; char ciphertext[10010] { 0 }; int plain[10010] { 0 }; int cipher[10010] { 0 };void sub_encrypt(char plaintext[]); void sub_decrypt(char ciphertext[]);int main() {int input;printf(请输入选项1为加密2为解密\n);scanf(%d, input);if(input 1){// 加密printf(请输入要加密的明文);scanf(%s, plaintext);printf(加密结果\n);sub_encrypt(plaintext);}else if(input 2){// 解密printf(请输入要解密的密文);scanf(%s, ciphertext);printf(解密结果\n);sub_decrypt(ciphertext);}elseprintf(错误的选项只能为1或2。程序退出。);return 0; }// 加密函数 void sub_encrypt(char plaintext[]) {int i;for(i 0;i strlen(plaintext);i ){plain[i] plaintext[i] - a;ciphertext[i] sub_table[plain[i]];}puts(ciphertext);return; }// 解密函数 void sub_decrypt(char ciphertext[]) {int i, j;for(i 0;i strlen(ciphertext);i ){for(j 0;j 26;j ){if(ciphertext[i] sub_table[j]){plaintext[i] j a;}}}puts(plaintext); }4、算法测试 加密过程演示 明文thisisastring 密文jdcucuqujncge 运行截图 解密过程演示 密文jdcucuqujncge 明文thisisastring 运行截图 3、维吉尼亚密码Vigenere Cipher 1、算法原理及流程 加密原理加密过程的一般方程是 Ci (pi k(i mod m)) mod 26通过该方程即可由明文得到密文 解密原理解密过程是加密过程的逆过程解密过程的一般方程是pi (Ci – k(i mod m)) mod 26. 2、算法的代码实现C语言 #include stdio.h #include string.hchar plaintext[10010] { 0 }; char ciphertext[10010] { 0 }; int plain[10010] { 0 }; int cipher[10010] { 0 };char key[20] { 0 };void vig_encrypt(char plaintext[], char key[]); void vig_decrypt(char ciphertext[], char key[]);int main(){printf(该程序实现维吉尼亚密码。请输入密钥\n);gets(key);int input;printf(请输入选项1为加密2为解密\n);scanf(%d, input);if(input 1){// 加密printf(请输入要加密的明文);scanf(%s, plaintext);printf(加密结果\n);vig_encrypt(plaintext, key);}else if(input 2){// 解密printf(请输入要解密的密文);scanf(%s, ciphertext);printf(解密结果\n);vig_decrypt(ciphertext, key);}elseprintf(错误的选项只能为1或2。程序退出。);return 0; }// 加密函数 void vig_encrypt(char plaintext[], char key[]) {int i;for(i 0;i strlen(plaintext); i ){plain[i] plaintext[i] - a;cipher[i] (plain[i] (key[(i % strlen(key))] - a)) % 26;ciphertext[i] cipher[i] a; }puts(ciphertext);return; }// 解密函数 void vig_decrypt(char ciphertext[], char key[]) {int i;for(i 0;i strlen(ciphertext); i ){cipher[i] ciphertext[i] - a;plain[i] cipher[i] - (key[(i % strlen(key))] - a);if(plain[i] 0){plain[i] 26;}plaintext[i] plain[i] a; }puts(plaintext);return; }3、算法测试 密钥lemon 明文defuzongxiangsihua 密文oirimzrslvlrsgvsym 运行截图 加密过程 解密过程 四、参考文献 1、《密码编码学与网络安全——原理与实践第七版》Cryptography and Network Security, Principles and Practice, Seventh Edition【美】威廉 斯托林斯 William Stallings 著王后珍等 译北京电子工业出版社2017年12月。 2、《密码学实验教程》郭华 刘建伟等 主编北京电子工业出版社2021年1月。
http://www.zqtcl.cn/news/725624/

相关文章:

  • 做网站推广哪家公司好成都最正规的装修公司
  • 菜鸟建网站如何制作推广网站
  • 无锡企业建站系统广州品牌网站建设
  • 什么网站能免费做公众号封面wordpress主题打不开
  • 扬州外贸网站建设制作广告的软件
  • 一个主机怎么做两个网站百度上的网站怎么做
  • 济南建设工程业绩公示的网站wordpress载入等待
  • seo公司名字太原百度seo排名软件
  • 安徽省城乡建设厅网站拼多多关键词排名在哪里看
  • 素材下载网站开发wordpress微信付款插件
  • 网站有什么用河北廊坊建筑模板厂家
  • 永康住房和城乡建设部网站做网站 万户
  • 可信赖的常州网站建设做直播券的网站有多少
  • 网络营销案例分析pptseo策略是什么意思
  • 论坛网站建设视频青岛网站设计软件
  • 租用网站服务器价格清远医院网站建设方案
  • 房地产网站建设方案书福田所有车型
  • 网站功能描述高清视频网络服务器免费
  • 天台做网站微博推广效果怎么样
  • 苏州专门网站网站站长统计怎么做
  • 社交网站开发注意事项call_user_func_array() wordpress
  • 泉州企业免费建站个人网站设计与开发
  • 网站建设流程书籍互联网行业黑话
  • 山亭 网站建设wordpress 添加头像
  • 龙南县建设局网站新手如何做网络推广
  • 网站开发建设赚钱吗巩义旅游网站建设公司
  • 网站建设代码介绍网站顶部导航代码
  • 帮别人做网站需要什么能力sem专员
  • 无锡网站建设 app推广软件
  • 免费入驻的外贸网站网站建设怎么打开