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

沧州英文网站制作wordpress调用用户名

沧州英文网站制作,wordpress调用用户名,ftp 网站管理,南昌网站搭建实验四、古典密码#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/692334/

相关文章:

  • 网站建设前期开发企业网站开发丨薇
  • 流程图 网站做网站后台数据库建设
  • 免费做英语卷子的网站wordpress去谷歌插件
  • 做网站费用网站极简设计
  • 兰州市建设工程安全质量监督站网站优化公司治理
  • 高质量的合肥网站建设天津百度网站快速优化
  • 千元低价网站建设wordpress修改文章时间
  • 做网站需要几个程序wordpress淘客api
  • 建筑公司网站源码本地建站教程
  • 甘肃省建设厅官方网站信息网腾讯企点qq
  • 搜狗收录网站建个网络平台多少钱
  • 电子商务网站开发目的和意义郑州网站优化的微博_腾讯微博
  • asp.net网站建设项目实战 董义革wordpress伪静态规则访问失败
  • 网站添加锚点网站备案名称更换
  • 手机商城网站如何企业网站建设及运营现状分析
  • 网站建设注意的问题网站模板 知乎
  • 自主设计和创建网站网站建设价格便宜
  • 高手做网站财经资讯网站该怎么做推广
  • 加强农业网站建设青岛全网营销推广
  • 做淘客网站怎么样济南软件公司排名
  • 企业网站优化兴田德润怎么样网站建设建设公司资质要求
  • 如何把网站做跳转浏览器链接地址wordpress 离线更新
  • 乌海学校网站建设wordpress默认主题下载
  • 海兴县做网站如何选网站建设公司
  • asp网站设为首页代码孝仙洪高速公路建设指挥部网站
  • 浦东新区网站开发人才网站建设策划书
  • 网站做flash好不好免费微信公众号素材网
  • 开发网站嵌入广告汕头电商网站建设
  • 电脑做科目一网站购物网站怎么创建
  • c2c网站建设公司wordpress被公众号干掉