版权归原作者所有,如有侵权,请联系我们

[科普中国]-栅栏密码

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

加密原理①把将要传递的信息中的字母交替排成上下两行。

②再将下面一行字母排在上面一行的后边,从而形成一段密码。

③例如:

明文:THE LONGEST DAY MUST HAVE AN END

加密:

1、把将要传递的信息中的字母交替排成上下两行。

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

2、 密文:

将下面一行字母排在上面一行的后边。

TEOGSDYUTAENN HLNETAMSHVAED

解密:

先将密文分为两行

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

再按上下上下的顺序组合成一句话

明文:HE LONGEST DAY MUST HAVE AN END

扩展(1)在选择行数时可以使多行,这样对于加密强度有所提高。

(2)可以在加密之后在使用其他密码进行加密,增加强度1。

实现的部分源代码加密部分:

// 获取密钥和明文 String str_p = et_plaintext.getText().toString(); char[] str_p_char = null; { try { str_p_char = str_p.toCharArray(); } catch (Exception e) { System.out.println("Exception"); } int len=str_p_char.length; System.out.println("len:"+len); StringBuffer sb_1 = new StringBuffer(); StringBuffer sb_2 = new StringBuffer(); if(len%2==1) { for (int i = 0; i