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

站长工具排行榜apk打包工具

站长工具排行榜,apk打包工具,中国工商注册网企业年报系统,宣传片设计制作公司“Hill的加密与解密”Hill加密是另一种多字母代替密码#xff0c;与多表代替密码不同的是#xff0c;Hill密码要求将明文分成同等规模的若干个分组(最后一个分组涉及到填充)#xff0c;每一个分组被整体的加密代换#xff0c;即希尔密码属于分组加密。Hill密码的算法思想是…“Hill的加密与解密”Hill加密是另一种多字母代替密码与多表代替密码不同的是Hill密码要求将明文分成同等规模的若干个分组(最后一个分组涉及到填充)每一个分组被整体的加密代换即希尔密码属于分组加密。Hill密码的算法思想是将一个分组中的d个连续的明文字母通过线性变换转换为d个密文字母。这种变换由d个线性方程决定其中每个字母被分配一个数值(0,1。。。25)。解密只需要做一次逆变换就可以了密钥就是变换矩阵本身。设明文为一维矩阵m密文为一维矩阵c密钥用k矩阵表示则即密文分组明文分组*密钥矩阵。本程序使用的密钥是下面是具体的源程序—头文件classical.h#pragma once//古典密码之希尔加密#include #include #define ROW 4    //行#define COL 4     //列int* plus(int(*K)[COL], int * num)     //进行加密{int *arr  (int *)calloc(sizeof(int),4);int sum  0;int sub  0;for (int i  0; i {for (int j  0; j {sum  (*(num  j)) * (*(*(K  j)  i));sub  sub  sum;}arr[i]  (arr[i]  sub) % 26;sub  0;}return arr;}int fun(int i, int j, int(*K)[COL])       //求伴随矩阵{int num  0;int arr[ROW][COL]  { 0 };int left  0;int right  0;for (int k1  0; k1 {for (int k2  0; k2 {if (k1 {arr[k1][k2]  *(*(K  k1)  k2);}else if (k1  j){arr[k1][k2 - 1]  *(*(K  k1)  k2);}else if (k1  i  k2  j){arr[k1 - 1][k2 - 1]  *(*(K  k1)  k2);}else if (k1  i  k2 {arr[k1 - 1][k2]  *(*(K  k1)  k2);}}}left  arr[1][1] * arr[2][2] * arr[0][0]  arr[0][1] * arr[1][2] * arr[2][0] arr[1][0] * arr[2][1] * arr[0][2];right  arr[0][2] * arr[1][1] * arr[2][0]  arr[0][1] * arr[1][0] * arr[2][2] arr[0][0] * arr[1][2] * arr[2][1];num  pow((double)(-1), (i  1)  (j  1)) * (left - right);return num;}int* answer(int(*K)[COL], int * str, int det)      //希尔解密{int ptr[ROW][COL]  { 0 };     //ptr为逆矩阵int* ans  (int *)calloc(sizeof(int), 4);int sum  0;int sub  0;int bag  0;for (int i  0; i {for (int j  0; j {bag  fun(i, j, K) / (det);if (bag {ptr[j][i]  (26  bag) % (26);}else{ptr[j][i]  bag % (26);}}}for (int i  0; i {for (int j  0; j {sum  (*(str  j)) * ptr[j][i];sub  sub  sum;}ans[i]  (ans[i]  sub) % 26;sub  0;}return ans;}void menu()      //菜单{printf(      ——古典密码          \n\n);printf(**********   1.加密    *******\n);printf(**********   2.解密    *******\n);printf(**********   0:退出    *******\n);printf(请选择);}char* inputclear()       //输入明文{printf(请输入明文);char num[20]  {‘\n‘};char *ptr  num;int i  0;char ch;fflush(stdin);      //清除缓冲区while ((ch  getchar()) ! ‘\n‘){num[i]  ch;i;}return ptr;}char* inputsecret()       //输入密文{printf(请输入密文);char num[20]  { ‘\n‘ };char *ptr  num;int i  0;char ch;fflush(stdin);      //清除缓冲区while ((ch  getchar()) ! ‘\n‘){num[i]  ch;i;}return ptr;}void judge(int n, int(*K)[4])     //处理加密或解密{char *ptr, *pln;int src[20];int num[4]  { 0 };int *parr  NULL;int *pnum  NULL;int det  -1;     //计算K的行列式的值switch (n){case 1:                                 //加密ptr  inputclear();for (int i  0; i {if (*ptr ! ‘\n‘  *ptr ! EOF){src[i]  *(ptr  i) - ‘A‘;}else{break;}}printf(加密后得到的密文);pnum  src;while (*pnum  0  *pnum  25){for (int i  0; i {num[i]  *(pnum  i);}parr  plus(K, num);for (int j  0; j {printf(%c, *(parrj)  ‘A‘);}pnum  pnum  ROW;}printf(\n);free(parr);break;case 2:pln  inputsecret();for (int i  0; i {if (*pln ! ‘\n‘  *pln ! EOF){src[i]  *(pln  i) - ‘A‘;}else{break;}}printf(解密后得到的明文);pnum  src;while (*pnum  0  *pnum  25){for (int i  0; i {num[i]  *(pnum  i);}parr  answer(K, num, det);for (int j  0; j {printf(%c, *(parr  j)  ‘A‘);}pnum  pnum  ROW;}printf(\n);free(parr);break;case 0:exit(EXIT_FAILURE);default:break;}}—源文件test.cpp#define _CRT_SECURE_NO_WARNINGS 1//希尔加密#include #include #include classical.hint main(){int K[4][4]  { { 8, 6, 9, 5 }, { 6, 9, 5, 10 }, { 5, 8, 4, 9 }, { 10, 6, 11, 4 } };   //密钥int leftK[0][0] * K[1][1] * K[2][2] * K[3][3]  K[1][0] * K[0][3] * K[3][2] * K[2][1] K[2][0] * K[3][1] * K[0][2] * K[1][3]  K[3][0] * K[0][1] * K[1][2] * K[2][3];int right  K[0][3] * K[1][2] * K[2][1] * K[3][0]  K[0][0] * K[1][3] * K[2][2] *K[3][1] K[0][1] * K[1][0] * K[2][3] * K[3][2]  K[0][2] * K[1][1] * K[2][0] * K[3][3];int n  0;menu();scanf(%d, n);judge(n, K);system(pause);return 0;}—运行结果Hill加密Hill解密很明显Hill密码将解密的长消息分组分组的长度取决于密钥矩阵的维数Hill密码的强度在于完全隐藏了单字母的频率。字母和数字的对应也可以更改为其他的方案使得不容易攻击成功。一般来说对抗仅有密文的攻击强度较高但易受到已知明文攻击。本文出自 “无心的执着” 博客谢绝转载
http://wiki.neutronadmin.com/news/248498/

相关文章:

  • 科技网站有哪些海南省建设网站的公司
  • 怎么建设手机端网站重庆市两江新区建设管理局网站
  • 聊城网站推广品牌石家庄企业网站
  • 郑州网站建设企业推荐wordpress2018
  • 政务公开既网站信息化建设会议psd素材
  • 天推广人的网站青岛网站建设公司电话
  • 空间做子网站上海知名网站设计
  • 网站不显示域名解析错误怎么办中国建筑协会官网证件查询
  • 做网站的大创结项网站建设栏目说明
  • 手机网站弹出导航菜单网站制作公司网
  • wordpress apicloud网站优化原理
  • 做外贸需要关注的网站有什么好处wordpress缩略图外链
  • 常用的网站语言wordpress在线视频插件
  • 装饰工程东莞网站建设石河子做网站公司
  • 昆明做大的网站开发公司万网封停慧聪网
  • 客户端网站建设文档室内设计师接单网
  • 合肥网站开发建设晋江市住房和城乡建设网站
  • 网站字体选择简洁中文网站模板
  • php搭建网站软件下载网店排行榜前十名
  • 营销型网站建设指导原则上海公司注册虚拟地址
  • 做中国旅游网站的目的与必要性网站版面在线设计
  • 有没有什么做海报字体的网站域名邮箱如何注册
  • 重庆建设管理信息网站wordpress novelist
  • 网站浏览速度狠狠做网站改成什么了
  • 做直播的网站有哪些快速排名精灵
  • 网站这么做301微博推广软件
  • 网站开发方向和移动开发方向那个好广州 互联网公司 网站首页
  • 墨西哥网站后缀上线一个网站需要多少钱
  • 微网官方网站网络投票怎么做
  • 网页美工设计网站上海十大设计公司有哪些