You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建加密字母表动态变化的替换密码,实现Java明文加密功能?

动态替换加密功能实现方案

核心思路

你只需要调用String自带的toCharArray()方法就能把动态传入的encryptalpha字符串转为char数组,不需要提前写死,再配合你计划的嵌套循环就能完成映射替换。

完整实现代码

public static String encrypt(String plaintext, String encryptalpha) {
    // 标准字母表
    char[] alpha = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
    // 入参合法性校验,避免后续逻辑出错
    if (plaintext == null || plaintext.isEmpty()) {
        return "";
    }
    if (encryptalpha == null || encryptalpha.length() != 26) {
        throw new IllegalArgumentException("加密字母表必须为26位字符");
    }
    // 动态把传入的加密字母表转为char数组
    char[] encryptAlphaArr = encryptalpha.toCharArray();
    StringBuilder ciphertext = new StringBuilder();
    // 遍历明文中的每个字符
    for (int i = 0; i < plaintext.length(); i++) {
        char currentChar = plaintext.charAt(i);
        boolean matched = false;
        // 匹配标准字母表的下标,对应到加密字母表的同下标字符
        for (int j = 0; j < 26; j++) {
            if (alpha[j] == currentChar) {
                ciphertext.append(encryptAlphaArr[j]);
                matched = true;
                break;
            }
        }
        // 非小写字母的字符(如大写、数字、符号)直接保留原字符,可根据需求调整为抛出异常或者转小写后加密
        if (!matched) {
            ciphertext.append(currentChar);
        }
    }
    return ciphertext.toString();
}

逻辑说明

  • 动态字母表转换:encryptalpha.toCharArray()会根据每次传入的加密字母表实时生成char数组,完全适配动态变化的需求
  • 映射逻辑:标准字母表和加密字母表是下标一一对应的关系,找到明文字符在标准字母表的下标j,直接取加密字母表下标j的字符就是对应的密文字符
  • 兼容性处理:代码里对非小写字母的字符做了保留处理,你可以根据业务需求调整规则

可选优化方案

如果明文长度很长,嵌套循环的效率会偏低,可以提前构建映射表减少遍历次数:

// 提前构建映射关系,只需要遍历26次
Map<Character, Character> encryptMap = new HashMap<>();
for (int j = 0; j < 26; j++) {
    encryptMap.put(alpha[j], encryptAlphaArr[j]);
}
// 遍历明文直接查表,不需要内层循环
for (int i = 0; i < plaintext.length(); i++) {
    char currentChar = plaintext.charAt(i);
    ciphertext.append(encryptMap.getOrDefault(currentChar, currentChar));
}

内容的提问来源于stack exchange,提问作者PurplePetal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 08:57:02