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

硬编码AES密钥是否属于安全漏洞?求技术解析(附代码)

硬编码密钥漏洞判定与代码解析

一、是否属于硬编码密钥漏洞

这绝对属于硬编码密钥漏洞,原因如下:

  • 你找到的AES_KEY、AES_VECTOR(AES加密的密钥和初始化向量)直接以明文形式定义在Constant类的静态常量中,Java编译后的字节码会保留这些字符串,攻击者通过反编译工具就能轻松提取出这些密钥。
  • 一旦密钥泄露,所有通过这些密钥加密的数据都能被直接解密,加密机制完全失去保护作用。
  • 另外注意AES_KEY_PRE的代码存在语法错误(多了一对双引号),但这不影响硬编码漏洞的判定。

二、相关代码含义解析

1. 常量类代码

package com.igen.configlib.constant;
public class Constant{
    public static final String AES_KEY="1111111111111111";
    public static final String AES_KEY_PRE=""214028""; // 存在语法错误,多了双引号
    public static final String AES_VECTOR="1111111111111111";
    ...
}
  • Constant是一个全局常量类,用来存放项目中复用的固定值。
  • AES_KEY:AES加密算法的密钥,这里是16位字符串(对应AES-128,因为128位=16字节)。
  • AES_VECTOR:AES-CBC模式必须的初始化向量(IV),同样是16位字符串,作用是让相同明文加密出不同密文,避免重复模式泄露信息。
  • AES_KEY_PRE:疑似密钥前缀,但代码存在语法错误,无法正常编译。

2. 加密方法代码

public static byte[] encrypt4CBC128ByDeviceSN(String str, String str2){
    String formatKeyAndVector=formayKeyAndVector(str2);
    return encrypt4CBC128(str, formatKeyAndVector,formatKeyAndVector)
}
public static byte[] encrypt4CBC128(String str){
    return encrypt4CBC128(str,"1111111111111111","1111111111111111")
}
  • encrypt4CBC128(String str):AES-CBC-128加密的重载方法,直接传入硬编码的密钥和IV,对输入字符串str进行加密,返回加密后的字节数组——这就是漏洞的核心触发点。
  • encrypt4CBC128ByDeviceSN(String str, String str2):相对安全的加密方法,它接收设备序列号str2,通过formayKeyAndVector方法将序列号处理成符合要求的密钥和IV,再用这个动态生成的值加密字符串str,避免了硬编码密钥的风险。

3. 解密方法代码

public static byte[] decrypt4CBC128ByDeviceSN(byte[] bArr, String str){
    String formatKeyAndVector=formayKeyAndVector(str);
    return decrypt4CBC128(str, formatKeyAndVector,formatKeyAndVector)
}
public static byte[] decrypt4CBC128(byte[] bArr){
    return decrypt4CBC128(bArr,"1111111111111111","1111111111111111")
}
  • decrypt4CBC128(byte[] bArr):对应加密方法的重载解密方法,直接用硬编码的密钥和IV解密输入的字节数组bArr,同样存在硬编码漏洞。
  • decrypt4CBC128ByDeviceSN(byte[] bArr, String str):用设备序列号生成的密钥和IV解密字节数组bArr,和对应的加密方法匹配,安全性更高。

内容的提问来源于stack exchange,提问作者Not a Salmon Fish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:01:24