三分密码转换(各类密码转换)

2023-03-02 19:58:03 密码用途 思思

除了摩斯密码以外还有哪些常见的密码系统?

除了摩斯密码之外,还有波雷费密码、四方密码、三分密码、adfgvx密码、仿射密码等很多种。密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复的。

C语言编程:三分加密

#include stdlib.h

#include string.h

#include stdio.h

int Three_Parties(char* data, int data_length)

{

typedef unsigned char UCHAR;

int i, index;

char* dict;

UCHAR* polybius_index;

//检查讯息的合法性

for(i = 0; i  data_length; i++)

{

if(data[i] = 'a'  data[i] = 'z')

{

//小写转化为大写

data[i] = 0xDF; //小写字母第5位置为0即变为大写

//data[i] -= 'a' - 'A'; //这种写法也可以,但没有上一种效率高

}

else if(data[i]  'A' || data[i]  'Z')

{

//包含非字母的字符

return 1;

}

}

dict = "LEOCBFQSTNARGHJUWXDVIKMPYZ/";

polybius_index = (UCHAR*)malloc(3 * data_length); 

for(i = 0; i  data_length; i++)

{

index = strchr(dict, data[i]) - dict;

polybius_index[i] = index / 9;

index %= 9;

polybius_index[i + data_length] = index / 3;

polybius_index[i + 2 * data_length] = index % 3;

}

for(i = 0; i  3 * data_length; i += 3)

{

index = polybius_index[i]*9 + polybius_index[i+1]*3 + polybius_index[i+2];

data[i/3] = dict[index];

}

free(polybius_index);

return 0;

}

int main(int argc, char* argv[])

{

char data[] = "helloworld";

if(Three_Parties(data, strlen(data)) == 0)

{

printf("%s", data);

}

else

{

printf("input error");

}

return 0;

}

//加密部分还可以改成建索引表,那样效率会更高,但代码稍微复杂些。

谁能详细点解释下三分密码啊 顺便把四方密码也讲解下

三分密码

三分密码由Felix

Delastelle发明(他也发明了四方密码和二分密码)。二分密码是二维的,用5×5(或6×6)的矩阵加密,但三分密码则用3×3×3的。它是第一个应用的三字母替换密码。

三分密码转换(各类密码转换) 第1张