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

编译后的C程序能否提取源码?明文存储密码是否安全?

C程序明文存储密码的安全性分析

首先明确:C程序编译成二进制后,确实没法直接还原出完整的源文件,但二进制里的字符串常量这类数据是很容易被提取的——这也是你这段代码最大的安全隐患。

看你给出的代码:

int main() {

printf("
email@example.com password: 123123

");

return 0;
}

这段代码里的密码123123是作为字符串常量直接写死在代码里的,编译后它会原封不动地存在二进制文件的只读数据段(.rodata)中。任何人只要用strings这类简单命令(甚至直接用文本编辑器打开二进制文件),都能一眼看到这个明文密码,完全没有任何安全性可言。

简单说几个关键问题:

  • 不需要复杂的逆向技术,用strings 你的二进制程序名就能直接输出所有可见字符串,密码会直接暴露。
  • 就算没有命令行工具,用普通的文本编辑器打开二进制文件,也大概率能找到这段明文内容。

如果要处理敏感凭证,正确的做法是:

  • 绝对不要在代码里硬编码密码、密钥这类信息。
  • 优先让用户在程序运行时手动输入密码,或者从加密的配置文件、环境变量中读取。
  • 若必须存储凭证,也要先加密再存储,且加密密钥不能硬编码到程序里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:54:34