信息安全密码技术--栅栏密码

2024-02-27 22:38

本文主要是介绍信息安全密码技术--栅栏密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 解密后的内容

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

这篇关于信息安全密码技术--栅栏密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753777

相关文章

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

PostgreSQL数据库密码被遗忘时的操作步骤

《PostgreSQL数据库密码被遗忘时的操作步骤》密码遗忘是常见的用户问题,因此提供一种安全的遗忘密码找回机制是十分必要的,:本文主要介绍PostgreSQL数据库密码被遗忘时的操作步骤的相关资... 目录前言一、背景知识二、Windows环境下的解决步骤1. 找到PostgreSQL安装目录2. 修改p

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3