1、栅栏密码

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话),从本质上讲,栅栏密码是一种置换技术,即仅仅改变位置而不做替换。

2、加密原理

①把将要传递的信息中的字母交替排成上下两行。
           ②再将下面一行字母排在上面一行的后边,从而形成一段密码。

例如:

明文:THE LONGEST DAY MUST HAVE AN END

加密:

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

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

II:

密文

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

TEOGSDYUTAENN

HLNETAMSHVAED
                          解密

I.先将密文分为两行

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

II.再按上下上下的顺序组合成一句话
                          明文:

THE LONGEST DAY MUST HAVE AN END

3、扩展

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

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

4、实现的部分源代码

加密部分:

// 获取密钥和明文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 <len;i=i+1){if(i%2==0){sb_1.append(str_p_char[i]);}else{sb_2.append(str_p_char[i]);}}}else{for (int i = 0; i <len; i=i+2){sb_1.append(str_p_char[i]);sb_2.append(str_p_char[i+1]);}}str_p = sb_1.toString()+sb_2.toString();

解密部分:

                String str_c = et_ciphertext.getText().toString();char []str_c_char = null;try {str_c_char=str_c.toCharArray();}catch(Exception e) {System.out.println("Exception");}int len=str_c_char.length;int half=len/2;StringBuffer sb = new StringBuffer();if(len%2==1) {int i=0;for (i = 0; i <half;i=i+1) {sb.append(str_c_char[i]);sb.append(str_c_char[i+half+1]);}sb.append(str_c_char[half]);}else {for (int i = 0; i <half; i=i+1) {sb.append(str_c_char[i]);sb.append(str_c_char[i+half]);}}str_c=sb.toString();

下面是具体的演示过程:

图1 输入要加密的内容

图2 加密后的内容

图3 解密后的内容

以上就是栅栏密码的实现过程。

信息安全密码技术--栅栏密码相关推荐

  1. 凯撒密码和栅栏密码 - 密码学01

    凯撒密码和栅栏密码 让编程改变世界 Change the world by program 我们将会学到什么?! 这相信是大家广泛关注的话题,因为如果一开始给大家一个强大而震撼的目录,然后就是一屁股的 ...

  2. 信息安全加密技术--Polybius密码

    1. 也称棋盘密码,是利用波利比奥斯方阵进行加密的密码方式,ADFGVX密码是德军在第一次世界大战中使用的栏块密码.事实上,它是早先一种密码 ADFGX 的增补版.1918年3月Fritz Nebel ...

  3. 阅读 《图解密码技术 第三版》的归纳和总结

    文章目录 简述 图解密码学 相关密码词汇和缩写介绍 密码技术介绍 RSA 非对称加密介绍 什么是非对称加密(公钥密码)? RAS 加解密算法公式 AES 下的模式介绍 (分组密码 || 对称密码模式介 ...

  4. 计算机网络安全技术密码技术,计算机网络安全课件:密码技术与压缩技术.ppt...

    计算机网络安全课件:密码技术与压缩技术 第9章 密码技术与压缩技术 本章学习目标 密码通信系统的模型 对称密钥密码体制和非对称密钥密码体制的加密方式和各自的特点 代码加密,替换加密,变位加密,以及一次 ...

  5. 摩尔斯电码和栅栏密码 ——合天网安实验室学习笔记

    实验链接 通过学习本实验理解摩尔斯电码和栅栏密码的编码解码过程:掌握编写摩尔斯电码的编码解码程序和编写多功能栅栏密码的编码解码程序. 链接:http://www.hetianlab.com/expc. ...

  6. kali linux解密栅栏密码,犯罪大师上帝之眼答案最新

    犯罪大师上帝之眼答案最新为玩家带来了最新的<上帝之眼>全部答案,并且和玩家一起解析在案件里面的全部线索.属于<犯罪大师上帝之眼答案最新>的剧情为玩家带来了非常精彩的玩法,每一条 ...

  7. 栅栏密码(The Rail-Fence Cipher)

    也称栅栏易位(Columnar Transposition),即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码.栅栏密码是一种置换密码. 例如密文:TE ...

  8. 【网络安全】python实现栅栏密码加解密

    1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话.不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多. -百度百科 例如: 将明 ...

  9. idf 快乐的小羊 栅栏密码

    题目: 一只小羊跳过了栅栏,两只小样跳过了栅栏,一坨小羊跳过了栅栏- tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosa ...

最新文章

  1. Java过滤器与SpringMVC拦截器之间的关系与区别
  2. [设计模式] 15.Command 命令模式
  3. Spring中DispacherServlet与WebApplicationContext、ServletContext的关系和工作机制
  4. main方法_十个经典的 Java main 方法面试题
  5. html5中加入音频,在H5场景中插入自定义音频和视频(任意画面)
  6. 解决unity 打包在Android 8.0上启动出现黑屏问题(Android权限弹窗问题)
  7. Week 2 代码审查
  8. 深度学习图像分类(二):AlexNet
  9. ztree 自定义参数_ztree的自定义编辑
  10. Intellij Idea更换编程字体
  11. 2021年程序员平均工资
  12. jq实现表格冻结窗格的样式
  13. lol封号维护服务器,LOL玩家被封三年执着理论,腾讯客服是这样回复的
  14. 计算机一级及格良好优秀有什么用,2019计算机一级多少分合格 一级证书有什么用...
  15. 大聊Python----Select解析
  16. 介绍两种提取视频语音变成文字的方式
  17. SQL Server性能优化
  18. 中国第一程序员——求伯君(二)
  19. 制作自己的CTPN训练集
  20. 智慧城市行业资料学习目录

热门文章

  1. (字节流与字符流)OutputStream字节输出流
  2. html 一键复制功能以及下载功能
  3. 美剧推荐:abc新剧Traveler
  4. 均值不等式中考_数学不等式解题技巧
  5. 架构方案(17) 分布式架构系统拆分原则、缘由、以及实战如何拆分步骤
  6. 2011-2019 历届蓝桥杯——本科B组C/C++组别所有试题——详解大全
  7. git checkout到新的分支之后原来未提交的代码找回
  8. v-permission来做权限管理
  9. 面试题精选:循环队列
  10. 简易四六级刷题网站(一键帮你对答案)