<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>栅栏密码</title>
	<atom:link href="https://www.aitaocui.cn/tag/180235/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Wed, 23 Nov 2022 06:29:17 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>栅栏密码</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>栅栏密码(解码技术)</title>
		<link>https://www.aitaocui.cn/article/283964.html</link>
					<comments>https://www.aitaocui.cn/article/283964.html#respond</comments>
		
		<dc:creator><![CDATA[镝数聚]]></dc:creator>
		<pubDate>Wed, 23 Nov 2022 06:29:17 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[栅栏密码]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=283964</guid>

					<description><![CDATA[所谓栅栏密码，就是把要加密的明文分成N个一组，然后把每组的第1个字连起来，形成一段无规律的话。不过栅栏密码本身有一个潜规则，就是组成栅栏的字母一般不会太多。（一般不超过30个，也就...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>所谓栅栏密码，就是把要加密的明文分成N个一组，然后把每组的第1个字连起来，形成一段无规律的话。不过栅栏密码本身有一个潜规则，就是组成栅栏的字母一般不会太多。（一般不超过30个，也就是一、两句话）</p>
</p>
</article>
<article>
<h1>解释</h1>
<p>一般比较常见的是2栏的棚栏密码。</p>
<p>比如明文：THERE IS A CIPHER</p>
<p>去掉空格后变为：THEREISACIPHER</p>
<p>两个一组，得到：TH ER EI SA CI PH ER</p>
<p>先取出第一个字母：TEESCPE</p>
<p>再取出第二个字母：HRIAIHR</p>
<p>连在一起就是：TEESCPEHRIAIHR</p>
<p>这样就得到我们需要的密码了！</p>
<p>而解密的时候，我们先吧密文从中间分开，变为两行：</p>
<p>T E E S C P E</p>
<p>H R I A I H R</p>
<p>再按上下上下的顺序组合起来：</p>
<p>THEREISACIPHER</p>
<p>分出空格，就可以得到原文了：</p>
<p>THERE IS A CIPHER</p>
<p>但是有些人就偏不把密码作出2栏，比如：</p>
<p>明文：THERE IS A CIPHER</p>
<p>七个一组：THEREIS ACIPHER</p>
<p>抽取字母：TA HC EI RP EH IE SR</p>
<p>组合得到密码：TAHCEIRPEHIESR</p>
<p>那么这时候就无法再按照2栏的方法来解了&#8230;</p>
<p>不过棚栏密码本身有一个潜规则，就是组成棚栏的字母一般不会太多。（一般不超过30个，也就是一、两句话）</p>
<p>这样，我们可以通过分析密码的字母数来解出密码&#8230;</p>
<p>比如：TAHCEIRPEHIESR</p>
<p>一共有14个字母，可能是2栏或者7栏&#8230;</p>
<p>尝试2栏&#8230;失败</p>
<p>尝试7栏&#8230;成功</p>
<p>然而当棚栏和拼音相结合后，诞生出一种令人痛恨的新思路&#8230;</p>
<p>比如在正道学院网络版的开篇flash中出现过这样一个棚栏：</p>
<p>QGBKSYSHJIEUEIIIIAN</p>
<p>总共19个字母～貌似不符合棚栏的规则&#8230;其实是因为出现了一个叫做捆绑的冬冬：</p>
<p>Q G B K S Y SH J</p>
<p>I E U E I I IIAN</p>
<p>看到了吗？上面是声母，下面是韵母&#8230;</p>
<p>声母中的sh和韵母中的ian都是被作者当为一个字符使用&#8230;</p>
<h1>扩展</h1>
<p>1.在选择行数时可以使多行，这样对于加密强度有所提高。2.可以在加密之后在使用其他密码进行加密，增加强度。</p>
<h1>实现的部分源代码</h1>
<p>// 获取密钥和明文</p>
<p>                String str_p = et_plaintext.getText().toString();</p>
<p>                char[] str_p_char = null;</p>
<p>                    {</p>
<p>                    try </p>
<p>                    {</p>
<p>                    str_p_char = str_p.toCharArray();</p>
<p>                    }</p>
<p>                    catch (Exception e) {</p>
<p>                        System.out.println(&quot;Exception&quot;);</p>
<p>                    }</p>
<p>                    int len=str_p_char.length;</p>
<p>                    System.out.println(&quot;len:&quot;+len);</p>
<p>                    StringBuffer sb_1 = new StringBuffer();</p>
<p>                    StringBuffer sb_2 = new StringBuffer();</p>
<p>                    if(len%2==1)</p>
<p>                    {</p>
<p>                    for (int i = 0; i &lt;len;i=i+1)</p>
<p>                    {</p>
<p>                    if(i%2==0)</p>
<p>                    {</p>
<p>                        sb_1.append(str_p_char[i]);</p>
<p>                    }</p>
<p>                    else</p>
<p>                    {</p>
<p>                        sb_2.append(str_p_char[i]);</p>
<p>                    }</p>
<p>                    }</p>
<p>                    }</p>
<p>                    else</p>
<p>                    {</p>
<p>                        for (int i = 0; i &lt;len; i=i+2)</p>
<p>                        {</p>
<p>                        sb_1.append(str_p_char[i]);</p>
<p>                        sb_2.append(str_p_char[i+1]);</p>
<p>                        }</p>
<p>                    }</p>
<p>                                        </p>
<p>                    str_p = sb_1.toString()+sb_2.toString();</p>
<p>解密部分：</p>
</p>
<p>                                   String str_c = et_ciphertext.getText().toString();</p>
<p>                char []str_c_char = null;</p>
<p>                </p>
<p>                try</p>
<p>                {</p>
<p>                    str_c_char=str_c.toCharArray();</p>
<p>                }</p>
<p>                    catch(Exception e)</p>
<p>                    {</p>
<p>                    System.out.println(&quot;Exception&quot;);</p>
<p>                    }</p>
<p>                    int len=str_c_char.length;</p>
<p>                    int half=len/2;</p>
<p>                    StringBuffer sb = new StringBuffer();</p>
<p>                    if(len%2==1)</p>
<p>                    {</p>
<p>                    int i=0;</p>
<p>                    for (i = 0; i &lt;half;i=i+1)</p>
<p>                    {</p>
<p>                    sb.append(str_c_char[i]);</p>
<p>                    sb.append(str_c_char[i+half+1]);</p>
<p>                    }</p>
<p>                    sb.append(str_c_char[half]);</p>
<p>                    }</p>
<p>                    else</p>
<p>                    {</p>
<p>                    for (int i = 0; i &lt;half; i=i+1)</p>
<p>                        {</p>
<p>                            sb.append(str_c_char[i]);</p>
<p>                            sb.append(str_c_char[i+half]);</p>
<p>                        }</p>
<p>                            }</p>
<p>                        str_c=sb.toString();</p>
</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/283964.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
