三分密码
三分密码由Felix
Delastelle发明(他也发明了四方密码和二分密码)。二分密码是二维的,用5×5(或6×6)的矩阵加密,但三分密码则用3×3×3的。它是第一个应用的三字母替换密码。
1、长江长江,我是黄河。 2、地瓜地瓜。我是土豆。 3、天王盖地虎,宝塔镇河妖。 4、力拔山兮气盖世,时不利兮骓不逝。 5、老总要醋吗?不喝醋还能算是老西儿吗? 6、请问今天会下雨吗?今天不下,明天下。 7、拨开乌云晴天日,山高水清见牛羊。 8、山重水复疑无路,青山青水有亲人。 9、地振高冈,一派西山千古秀。门朝大海,三河合水万年流。 10、芝麻开门。 11、宫保鸡丁,鱼香肉丝。 12、东方中学,托起明天的太阳。 13、忧劳可以兴国,闭目可以养神。 14、天王盖地虎,小猫抓老鼠。 15、明月几时有,抬头自己瞅。 16、一盘猪头肉,二两老白干。 17、白日依山尽,锄禾日当午。 18、天马流星拳,送你一包盐。 19、清明上河图,宝塔镇河妖。 20、土豆,土豆,我是牛肉。 史上最牛暗号2 一、RSA算法密码 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 二、ECC加密法密码 ECC算法也是一个能同时用于加密和数字签名的算法,也易于理解和操作。同RSA算法是一样是非对称密码算法使用其中一个加密,用另一个才能解密。 三、二方密码 二方密码(en:Two-square_cipher)比四方密码用更少的矩阵。 四、四方密码 四方密码用4个5×5的矩阵来加密。每个矩阵都有25个字母(通常会取消Q或将I,J视作同一样,或改进为6×6的矩阵,加入10个数字)。 五、三分密码 首先随意制造一个3个3×3的Polybius方格替代密码,包括26个英文字母和一个符号。然后写出要加密的讯息的三维坐标。讯息和坐标四个一列排起,再顺序取横行的`数字,三个一组分开,将这三个数字当成坐标,找出对应的字母,便得到密文。 史上最牛暗号3 “化学类”暗号: 1、【38324?】【14122!】 注:38324是稀硝酸与铜反应方程式配平系数: 3Cu+8HNO(稀)==3Cu(NO)+2NO↑+4HO 14122是浓硝酸与铜反应方程式配平系数: Cu+4HNO(浓)==Cu(NO)+2NO↑+2HO 2、【浓的要死?】【稀的三八!】 注:铜与浓硝酸和稀硝酸的方程式配平的另一种口诀。 3、【氢氦锂铍硼?】【碳氮氧氟氖!】 注:初中化学必背元素 4、【氢锂钠钾铷铯纺?】【铍镁钙锶钡镭!】 注:元素周期表 5、【酸脱羟基?】【酵脱氢!】 注:酯化反应口诀 6、【一价氢氯钾钠银,二价氧钙钡镁锌?】【三铝四硅五价磷,单质零价要记清!】 注:化合价口诀
#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;
}
//加密部分还可以改成建索引表,那样效率会更高,但代码稍微复杂些。
密码的种类有很多,这里列举几个知名的密码种类
1、摩斯电码
摩尔斯电码由点(.)嘀、划(-)嗒两种符号按以下原则组成:
一点为一基本信号单位,每一划的时间长度相当于 3 点的时间长度。在一个字母或数字内,各点、各划之间的间隔应为两点的长度。字母(数字)与字母(数字)之间的间隔为 7 点的长度。
2、恺撒移位密码。
也就是一种最简单的错位法,将字母表前移或者后错几位。
例如: 明码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密码表:DEFGHIJKLMNOPQRSTUVWXYZABC,这就形成了一个简单的密码表,如果想写 frzy(即明文),那么对照上面密码表编成密码也就
是 iucb(即密文)了。
密码表可以自己选择移几位,移动的位数也就是密钥。
3、栅栏易位法。
即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。
举例:
TEOGSDYUTAENNHLNETAMSHVAED
解:
将字母分截开排成两行,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再将第二行字母分别放入第一行中,得到以下结果 THE LONGEST DAY MUST HAVE AN END。
扩展资料:
密码是一门科学,有着悠久的历史。密码在古希腊与波斯帝国的战争中就被用于传递秘密消息。在近代和现代战争中,传递情报和指挥战争均离不开密码,外交斗争中也离不开密码。
密码一般用于信息通信传输过程中的保密和存储中的保密。随着计算机和信息技术的发展,密码技术的发展也非常迅速,应用领域不断扩展。密码除了用于信息加密外,也用于数据信息签名和安全认证。
这样,密码的应用也不再只局限于为军事、外交斗争服务,它也广泛应用在社会和经济活动中。当今世界已经出现了密码应用的社会化和个人化趋势。
例如:可以将密码技术应用在电子商务中,对网上交易双方的身份和商业信用进行识别,防止网上电子商务中的“黑客”和欺诈行为。
应用于增值税发票中,可以防伪、防篡改,杜绝了各种利用增值税发票偷、漏、逃、骗国家税收的行为,并大大方便了税务稽查。
应用于银行支票鉴别中,可以大大降低利用假支票进行金融诈骗的金融犯罪行为;应用于个人移动通信中,大大增强了通信信息的保密性等等。
参考资料来源:百度百科--密码
世界上有很多种密码,主要分类有以下几种:
1、摩斯密码,最早是一些表示数字的点和划,数字对应单词,需要查找一本代码表才能知道每个词对应的数;
2、四方密码,是一种对称式加密法,由法国人发明,这种方法将字母两个一组,采用多字母替换密码达到加密的目的;
3、希尔密码,是运用基本矩阵论原理的替换密码,由法国人希尔在1929年发明;
4、波雷费密码,是一种对称式密码,是首种双字母取代的加密法,最早出现在一份1854年3月26日由查尔斯·惠斯登签署的文件中,他的朋友波雷费勋爵普及了这个加密法;
5、三分密码,三分密码由Felix Delastelle发明。三分密码是三维的,用3×3×3的公式进行加密,它是第一个应用的三字母替换密码。