N阶直栏栅算法加解密代码(完成版)

    技术2022-05-13  8

    1.N阶直栏栅加密算法 #include "stdio.h" #include "string.h" #include "stdlib.h" #include "math.h" void main() { char a[100]; printf("请输入明文"); gets(a); int i=0,j=0,l=0,m=0,o=0;     int k=0 ,n=0;     printf("请输入阶数:"); scanf("%d",&n); k=strlen(a); if (k%n==0) {o=k/n;} else {o=int(k/n)+1;}     char b[15][15]={' '}; for(j=0;j<o;j++) { for(i=0;i<n;i++)   {   b [j]=a[m];  m++;  }}    printf("密文");for(i=0;i<n;i++){  for(j=0;j<o;j++)  { printf("%c",b[j]);}  }printf("/n");}2.N阶直栏栅解密算法 #include "stdio.h"#include "string.h"#include "stdlib.h"#include "math.h"void main(){char a[100];printf("请输入密文");gets(a);int i=0,j=0,l=0,m=0,o=0;    int k=0 ,n=0;    printf("请输入阶数:");scanf("%d",&n);k=strlen(a);if (k%n==0) {o=k/n;}else{o=int(k/n)+1;}    char b[15][15]={' '};for(i=0;i<o;i++)//{for(j=0;j<n;j++)  {  b[j]=a[m];  m++;  }}    printf("明文");for(j=0;j<o;j++){  for(i=0;i<n;i++)  { printf("%c",b[j]);}  }printf("/n");}适用范围:因为用数组搞的.15*15的都可以.C一般不能实现动态数组.硬是要实现也可以.就是输出的部分或者换存储过程.如果不知道密匙K需要用for循环实现暴力破解。不过这个还是用人来判定是否这个解是最终解 暴力破解的在另个日志里面有思路.考研期间不去碰它.斜栏栅算法其实差不多.不去实现.此日志不再更新!!!

    最新回复(0)