防混淆不是加密算法,不能替代加密保障敏感数据安全;它仅通过变量重命名、控制流扁平化等手段增加逆向难度,但无机密性保证,一旦环境被突破明文仍可被提取。

防混淆不是一种加密算法,它不能替代加密来保障敏感数据安全。混淆(Obfuscation)只是对代码逻辑或结构做人为遮掩,比如变量重命名、控制流扁平化、字符串加密等,目的是增加逆向分析难度,但它不提供机密性保证——一旦运行环境被突破(如调试器注入、内存dump),混淆后的数据仍可能被直接提取为明文。
真正起保护作用的是加密,不是混淆
本地存储敏感数据(如Token、用户凭证、配置密钥)时,必须依赖标准加密算法,而非混淆手段:
- 对称加密(推荐AES-256-GCM):加解密快、带认证,适合加密小段敏感值;需配合安全的密钥管理(如鸿蒙TEE、Android Keystore、iOS Secure Enclave);
- 哈希算法(仅限不可逆场景):如存储密码必须用bcrypt/Argon2,而非SHA-256或MD5;
- 非对称加密(慎用):适合加密短密钥或签名,不适合直接加密业务数据(性能低、有长度限制)。
混淆可作为辅助层,但绝不能单独使用
在某些场景下,混淆能延缓攻击者定位加密逻辑,例如:
- 把AES密钥生成逻辑、IV构造方式、加密入口函数名进行重命名和控制流打乱;
- 将硬编码的盐值或常量字符串拆分、动态拼接;
- 但这些操作必须建立在已正确使用加密的前提下,否则混淆反而制造虚假安全感。
关键实践建议
保障本地敏感数据安全,应聚焦以下可落地动作:
- 优先采用系统级加密能力:鸿蒙用@ohos.security.crypto + TEE,Android用EncryptedSharedPreferences,iOS用Keychain Services;
- 绝不硬编码密钥或密码;密钥应由可信执行环境(TEE/SE)生成并保管;
- 加密后务必校验完整性(如GCM模式自带认证标签,或额外计算SM3/SHA-256哈希);
- 敏感数据写入文件前加密,读取后尽快从内存清除明文(避免残留)。

















