信息安全--密钥短语密码
密钥短语密码
说明:
最近的课程要求自己实现几种加密算法,虽然简单,但也养成习惯,做个记录。
【信息安全--密钥短语密码】下面是密钥短语密码的实现步骤:
1. 选择密钥并删除重复字母.
2. 在明文的字母表下方从左往右写下处理的后的密钥,然后再写剩余的字母即得密文字母表.
如密钥短语密码为: hello -> helo
明文: abcdefghijklmnopqrstuvwxyz
密文: heloabcdfgijkmnpqrstuvwxyz
3.java 代码实现:
package com.jiangbiao.firsthomework; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 密钥短语密码 */ public class KeyWordCipher {public static final String word = "abcdefghijklmnopqrstuvwxyz"; public static void main(String[] args) { String express; Scanner input = new Scanner(System.in); System.out.println("请输入密钥:"); String miyao = input.nextLine(); System.out.println("请输入明文:"); express = input.nextLine(); //转换成小写形式 String miyao2 = miyao.toLowerCase(); String express2 = express.toLowerCase(); //密文 String ciphertext = encryptionOperation(miyao2, express2); System.out.println("密文如下:"); System.out.println(ciphertext); }/** * 加密操作 * @param express * @return */ public static String encryptionOperation(String miyao, String express){char[] miyaos = miyao.toCharArray(); char[] expresss = express.toCharArray(); ListmiyaosL = new ArrayList<>(); //1.切分明文,并去除重复单词 for (int i = 0; i < miyaos.length; i++) { if (i > 0){ if (miyaosL.contains(miyaos[i])) { continue; } } miyaosL.add(miyaos[i]); } System.out.println("切分后的单词:\n" + miyaosL.toString()); //2.拼凑密文 List wordsList = miyaosL; for (int k = 0; k < expresss.length; k++){ if (!wordsList.contains(expresss[k])) { wordsList.add(expresss[k]); } }String ciphertext = wordsList.toString().substring(1, wordsList.toString().length()-1); return ciphertext.replaceAll(", ", ""); } }
/**
* 测试用例:
*
* 请输入密钥:
* hello
* 请输入明文:
* abcdefghijklmnopqrstuvwxyz
* 切分后的单词:
* [h, e, l, o]
* 密文如下:
* heloabcdfgijkmnpqrstuvwxyz
*/
转载于:https://www.cnblogs.com/zishu/p/8650124.html
推荐阅读
- 书评——《小行星》
- NeuVector 会是下一个爆款云原生安全神器吗()
- 魔灵末路?第二十八章
- 何以解忧,企业信息化、数字化选型焦虑之五·系统安全隐患大
- K8S|K8S 生态周报| Istio 即将发布重大安全更新,多个版本受影响
- 学习与知识管理
- 科三测评
- 【入门】Python网络爬虫与信息提取1
- 简易有效Api接口防攻击策略
- 成功通航(用宜搭提升数字化管理效能,确保每次飞行任务安全执行)