【加解密】简单字母表替换加解密

代码:

复制代码
package com.hy.masking;

import java.util.HashMap;
import java.util.Map;

public class SimpleReplacer {
    private static final String fromStr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    private static final String toStr  ="LMNOPQRSTUVWXYZABCDEFGHIJKtuvwxyzabcdefghijklmnopqrs6789012345";

    private static Map<Character,Character> enMap;
    private static Map<Character,Character> deMap;

    static{
        enMap =new HashMap<>();
        deMap =new HashMap<>();

        for(int i=0;i<fromStr.length();i++){
            char key=fromStr.charAt(i);
            char value=toStr.charAt(i);
            enMap.put(key,value);
            deMap.put(value,key);
        }
    }

    public static String encrypt(String str){
        char[] arr=str.toCharArray();

        for(int i=0;i<arr.length;i++){
            char key=arr[i];
            if(enMap.containsKey(key)){
                arr[i]=enMap.get(key);
            }
        }

        return String.valueOf(arr);
    }

    public static String decrypt(String str){
        char[] arr=str.toCharArray();

        for(int i=0;i<arr.length;i++){
            char key=arr[i];
            if(deMap.containsKey(key)){
                arr[i]=deMap.get(key);
            }
        }

        return String.valueOf(arr);
    }

    public static void main(String[] args){
        String[] arr={"abc012","er2EDF","WQYNS01823","csadsad321321","cczx2","321321"};

        for(String original:arr){
            String enStr=encrypt(original);
            String deStr=decrypt(enStr);

            String msg=String.format("原文=%s 密文=%s 译文=%s",original,enStr,deStr);
            System.out.println(msg);
        }
    }
}
复制代码

输出:

原文=abc012 密文=LMN678 译文=abc012
原文=er2EDF 密文=PC8xwy 译文=er2EDF
原文=WQYNS01823 密文=pjrgl67489 译文=WQYNS01823
原文=csadsad321321 密文=NDLODLO987987 译文=csadsad321321
原文=cczx2 密文=NNKI8 译文=cczx2
原文=321321 密文=987987 译文=321321

END

posted @   逆火狂飙  阅读(267)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-03-17 实验:模糊查询会使普通索引失效吗?
2020-03-17 位图索引对单表查询效率的影响(使用解释计划评估)
2020-03-17 查看加在一张表上的索引
2020-03-17 用解释计划评估创建索引后对单表查询效率的影响
2019-03-17 【Canvas与游戏】空战游戏1.18
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示