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

Java:如何为JButton设置静态字节数组密钥?加密系统改造求助

解决方法:将动态读取密钥改为静态密钥值

嘿,这事儿超简单!你现在的代码是从time_128这个JTextBox里读取密钥,要改成在key_128按钮的点击事件里用静态密钥,只需要替换掉获取密钥的那一行代码就行,不用再依赖文本框输入了。

修改步骤:

  • 删掉从文本框读取密钥的逻辑:byte[] K = time_128.getText().getBytes();
  • 直接在代码里定义固定的静态密钥,注意要符合你加密算法的长度要求(比如AES-128需要16字节的密钥)

修改后的代码片段:

// 获取用户输入的明文
byte[] plain = plaintext.getText().getBytes(StandardCharsets.UTF_8);

// 设置静态128位密钥(示例值,你可以换成自己的密钥)
// 方式1:直接用字节数组(16字节=128位)
byte[] K = new byte[]{
    0x01, 0x02, 0x03, 0x04,
    0x05, 0x06, 0x07, 0x08,
    0x09, 0x0A, 0x0B, 0x0C,
    0x0D, 0x0E, 0x0F, 0x10
};

// 方式2:从固定字符串转换(确保字符串对应的字节数是16,比如UTF-8下16个字符)
// byte[] K = "MySecure128Key123!".getBytes(StandardCharsets.UTF_8);

// 执行加密逻辑
byte[] encrypted = encrypt(plain, K);
// 转换为十六进制字符串并显示到结果框
String encryptedHex = new String(bytesToHex(encrypted));
encryptedtext.setText(encryptedHex);

额外提示:

  • 如果你用的是AES这类对称加密算法,密钥长度必须严格匹配(128位对应16字节,192位24字节,256位32字节),否则加密方法可能会抛出异常
  • 如果原来的time_128文本框已经不需要了,可以从界面上移除它,避免用户困惑
  • 静态密钥硬编码在代码里要注意安全问题,如果是生产环境,建议用更安全的方式存储密钥(比如配置文件、密钥管理服务),测试或演示场景下硬编码没问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:04:07