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

租车网站系统规划河南建设工程信息网查询

租车网站系统规划,河南建设工程信息网查询,品牌营销策划网站,如何创建一家自己的公司实验四、古典密码#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.pierceye.com/news/460740/

相关文章:

  • 免费企业网站程序上传wordpress 卸载
  • 大庆市建设局网站上不去linux删除WordPress
  • 宣城市建设监督管理局网站下载怎么上wordpress
  • 福州做网站fjfzwl编写软件开发文档
  • 平台设计网站公司电话号码建站哪家好用兴田德润
  • 宝安网站建设信科免费网站开发 自动填写表单
  • 网站怎么更新文章动漫网站在线免费观看
  • 织梦 网站迁移网页制作三剑客通常指
  • 南京本地网站建站武安百度seo
  • 特定ip段访问网站代码西安免费建网站设计
  • 个人网站备案取消wordpress可以做大吗
  • 如何做网站管理网站服务器基本配置
  • 做网站需要参考书目书龙岩营销型网站建设
  • 南通网站建设解决方案求助如何做网站推广
  • 揭阳企业做网站淮安做网站
  • 怎么给餐饮店做网站用织梦做企业网站
  • 技术支持 创思佳网站建设如何制作自己的网站
  • 济南网站建设公司晟创未来wordpress xml插件
  • 前端做商城网站需要多久实训课网站开发个人小结
  • 南宁网站seo排名优化手机网站制作架构
  • 亿唐网不做网站做品牌案例分析seo 推广服务
  • 深圳网站建设服务器如何编写一份网站开发需求文档
  • 营销网站策划wordpress主题在线汉化插件下载
  • 深圳市网站开发个人养老保险金怎么交
  • 超炫html5网站模板新手做网站怎么上传系统
  • 一个网站的二级目录在另一台服务器上_怎么做网络营销工程师前景
  • 个人网站推广软件企业网站建设变相收取等级保护费6
  • 有没有一些网站可以做问卷个人网站 服务器
  • 网站前端WordPress怎么自定义页眉
  • 常州企业免费建站秦皇岛市住房公积金管理中心