密匙短语密码的实现步骤
1、选取密匙并去除重复字符
如:university -->universty
2、密匙共有10个单词,从第11个字符开始,用universty按顺序进行代替配置
3、将其余17个字母按自然顺序排列
以university为密匙的换字表
明文字母 | abcdefghijklmnopqrstuvwxyz |
---|---|
密文字表 | JKLMOPQWXZUNIVERSTYABCDFGH |
**
java实现如下:
**
package com.ibianma;
import com.sun.deploy.util.StringUtils;
import java.util.*;
/**
* 密匙短语密码
*/
public class KeyPhraseMima {
/**
* 密匙获取函数
* @param miShiDuanYu 密匙短语
* @return 密匙
*/
public char[][] key(String miShiDuanYu){
/**
* 定义一个二维数组保存生成的密匙
*/
char[][] chars1 = new char[2][26];
int q=97;
for (int j = 0; j <26 ; j++) {
chars1[0][j]=(char) q;
q++;
}
/**
* 将密匙短语转化为字符数组便于统计各字符出现次数
* LinkedHashMap集合是一个有序且不重复的集合
*/
char[] chars = miShiDuanYu.toCharArray();
LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
String string = "";
for (char aChar : chars) {
if (!map.containsKey(aChar)){
map.put