在编译的 C 或 C++ 代码中加密密码

2024-04-05

我知道如何在终端中使用 GCC 和 CC 编译 C 和 C++ 源文件,但是我想知道编译后在这些文件中包含密码是否安全。

例如..我检查用户输入的某个密码,例如 123,但似乎已编译的 C/C++ 程序可能会被反编译。

无论如何,有没有办法编译 C/C++ 源文件,同时保持源完全隐藏。 如果没有,任何人都可以提供一个加密输入的小示例,然后检查密码,例如:(SHA1,MD5)


不,您无法安全地将密码包含在源文件中。可执行文件中的字符串是纯文本形式,任何拥有文本编辑器的人都可以轻松查看您的密码。

一个不太安全但会践踏某些人的方法是存储加密的字符串。所以,基本上:

enc = "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"

bool check() {
    pass = getPassFromUser();
    encpass = myHashingFunction(pass);
    return pass == encpass;
}

这会阻止一些人,但实际上并没有更安全,对于程序集黑客来说,用另一个具有已知明文值的 sha256 编码字符串替换可执行文件中的“enc”字符串相对简单。

即使您使用单独的身份验证服务器,设置一个伪造的身份验证服务器并欺骗您的程序连接到该伪造的身份验证服务器也不困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在编译的 C 或 C++ 代码中加密密码 的相关文章

  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • AspNet vNext 上的 Kestrel 不提供 / 下的索引页面

    我需要能够在默认网址下提供我的 index html 使用 Kestrel Web 服务器 现在我只能使用完整路径访问我的静态文件 即 index html 同样 这在 VisualStudio 上完美运行 上下文是带有 Kestrel 的
  • gtest 和 gmock 有什么区别?

    我试图理解的目的google mock Google 的 C 模拟框架 https github com google googletest blob master googlemock README md 我已经与gtest较早 但我还是
  • 避免集合已修改错误

    Issue 我有以下代码 foreach var ItemA in GenericListInstanceB ItemA MethodThatCouldRemoveAnyItemInGenericListInstanceB 显然我得到一个错
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • C++ 非类型参数包扩展

    我正在编写由单一类型参数化的模板函数 并且具有可变数量的相同类型 而不是不同类型 的参数 它应该检查第一个值是否在其余值中 我想这样写 include
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • Entity Framework 4.1 RC:Code First EntityTypeConfiguration 继承问题

    我尝试使用通用的 EntityTypeConfiguration 类来配置所有实体的主键 以便每个派生的配置类不会重复自身 我的所有实体都实现一个公共接口 IEntity 它表示每个实体必须有一个 int 类型的 Id 属性 我的配置基类如
  • 'goto *foo' 其中 foo 不是指针。这是什么?

    我正在玩标签作为值 https gcc gnu org onlinedocs gcc Labels as Values html并最终得到这段代码 int foo 0 goto foo 我的 C C 经验告诉我 foo means dere
  • C 中“for”循环中的两个变量

    我正在编写一些代码 需要在其中使用两个变量for环形 下面的代码看起来没问题吗 它确实给了我预期的结果 for loop 1 offset loop 2 offset 2 loop 1 gt offset 190 loop 2 lt 190
  • 从窗口内容截取屏幕截图(无边框)

    我正在寻找有关如何使用 C 将表单内容保存在位图中的解决方案 我已经尝试过使用 DrawToBitmap 但它捕获了所有带边框的窗口 这就是这段代码的结果 public static Bitmap TakeDialogScreenshot
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • 在 ncurses 中使用退格键

    我设置了一个简单的 ncurses 程序 它使用 getch 一次读取一个字符并将它们复制到缓冲区中 我遇到的问题是检测到按下退格键 这是相关代码 while buffer i c getch EOF i if c n break else
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 如何为 Mac OS X 制作可拖动的菜单栏图标

    我正在为我正在开发的应用程序编写菜单栏图标 但是 NSStatusBar 类没有可以通过 cmd 鼠标左键拖动来使图标可拖动的方法 如何使用 Objective C 代码使菜单栏图标可拖动 谢谢 目前您无法使用 NSStatusBar 来完
  • 如何解释“错误C2018:未知字符'0x40'?[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在编译一些代码时 我收到以下信息 错误 C2018 未知字符 0x40 我想知道如何解决这样的问题 这是我要开始的地方
  • 我应该使用多个 HttpClient 来进行批量异步 GET 请求吗?

    我有一个场景 我需要在尽可能短的时间内发出大量 GET 请求 想想大约 1000 个 我知道通常最好保留一个客户端并尽可能重用它 Create Single HTTP Client HttpClient client new HttpCli
  • C 中什么函数可以替换字符串中的子字符串?

    给定一个 char 字符串 我想查找所有出现的子字符串并将其替换为备用字符串 我没有看到任何简单的函数可以实现这一点
  • FakeItEasy 代理方法调用实际实现

    我正在尝试将对假对象的调用代理到实际的实现 这样做的原因是我希望能够使用 Machine Specifications 的 WasToldTo 和 WhenToldTo 它们仅适用于接口类型的伪造 因此 我正在执行以下操作来代理对我的真实对

随机推荐

  • 响应式 SVG 图像蒙版

    我使用 SVG 作为图像蒙版 但我不知道如何在调整页面大小时使 SVG 改变其大小 当我更改窗口大小时 SVG 内的图像会调整大小 但 SVG 不会 关于如何解决这个问题有什么想法吗 这是 SVG 代码
  • 避免在 Swift 中使用连续的“if let”声明[重复]

    这个问题在这里已经有答案了 在斯威夫特我用过if let声明来检查我的对象是否不是nil if let obj optionalObj 但有时候 我不得不面对连续的if let声明 if let obj optionalObj if let
  • 支持多个Python模块版本(具有相同版本的Python)

    我环顾四周 但找不到我的问题的明确答案 我非常合理地需要支持同一 Python 模块的 N 个版本 如果它们存储在同一个包 目录中 则它们必须具有唯一的名称 如下例所示 some package my module 1 0 py some
  • 通过 JavaScript 正则表达式获取 url 路径名的一部分

    我有以下网址 https www example com article f 1 test article 我需要通过 JavaScript 纯 JavaScript 从 url 中获取 1 部分 我知道我可以用 location path
  • knockoutjs 中的滑动动作绑定

    我在我的应用程序中使用淘汰赛作为主要框架 它必须支持平板电脑和移动设备 由于框架是基于绑定处理程序构建的 我想知道如何实现对操作 如滑动和其他特定于设备的操作 的自定义绑定 或者也许有类似的事情完成 可能为时已晚 但这里有一个库 将触摸绑定
  • DB2 WITH 语句可以用作 UPDATE 或 MERGE 的一部分吗?

    我需要更新数据库表中的一些行 如何识别要更新的行涉及一系列复杂的语句 我设法将它们归结为一系列WITH语句 现在我有了正确的数据值 我需要更新表 由于我设法使用WITH语句获取这些值 因此我希望在更新 合并中使用它 一个简化的示例如下 wi
  • 如何更改 Ubuntu 中的文件权限 [重复]

    这个问题在这里已经有答案了 在 Ubuntu 中 我想更改整个文件夹及其所有子文件夹的文件权限以供任何人读 写 我努力了sudo chmod 666 var www and sudo chmod 755 var www没有成功 update
  • Facebook 重置“在 Facebook 上分享”链接的缓存

    我刚刚更新了我们网站的的开放图协议 我刚刚注意到 每当我分享一些链接时 旧的是 Facebook 正在解析的 但是 对于我运行的那些链接debugger https developers facebook com tools debug他们
  • 仅当 command1 在 cmd windows shell 中成功时才运行 command2

    我们如何组合 cmd shell 语言中的命令 以便仅在第一个命令成功完成时才执行第二个命令 类似以下 bash 命令 make a out a out仅在以下情况下执行make那是成功的 下列 command1 command2 应该致力
  • 读取 nul 分隔字段

    给定这个文件 printf alpha 0bravo 0charlie gt delta txt 我想将这些字段读入单独的变量中 我使用的原因 空分隔符是因为字段将包含文件路径 其中可以包含 除 null 之外的任何字符 我尝试了这些命令
  • Android 中某些相机分辨率下的不同捕获输出大小

    我正在使用 Android Camera2 API 开发一个自定义相机应用程序 您可以在手机中可用的不同相机和视频分辨率之间切换 它还提供了拍摄 1 1 方形照片的可能性 为了拍摄方形照片 我拍摄了一张正常的 4 3 照片 然后将其裁剪以保
  • GetType 返回 Int 而不是 System.Int32

    GetType ToString 返回对象的全名 我想要您通常用来实例化该对象的名称 即 int 而不是 Int32 有没有办法做到这一点 C 有许多 类型 它们实际上是 NET CLR 的关键字别名Types 在这种情况下 int是 C
  • 如果不允许任务之间共享可变状态,为什么 Rust 具有互斥体和其他同步原语?

    我的理解是 Rust 中的任务之间不可能共享可变状态 那么为什么 Rust 有这样的东西mutexes https doc rust lang org std sync struct Mutex html在语言中 他们的目的是什么 不允许在
  • 如何在asp.net core中更改Razor中的根路径〜/

    我有一个带有 Razor 的 ASP NET Core 2 1 MVC 应用程序 它广泛使用 path syntax 如果应用程序从域根运行 例如 从http localhost 5000 但是当我在非根位置运行应用程序时 例如 http
  • 错误:您需要包含一些实现 __karma__.start 方法的适配器

    我正在尝试向我的项目之一添加一些单元测试 到目前为止 我已经安装并配置了 karma 并安装了 jasmine 我的里面有一个测试文件test folder karma 服务器已启动 浏览器页面已准备就绪 但是karma run失败如下 k
  • 如何翻译$url_handlers?

    我遇到一个情况 需要翻译以下内容 url handlers对于不同的国家 因此 在英文网站上 URL 如下所示 http website com gyms boston group training http website com gym
  • curl_multi_exec:下载的一些图像丢失了一些数据/流不完整

    我已经实现了一个 PHP 函数 它检查并下载大量图像 gt 1 000 使用数组传递给它 使用 PHPcurl multi init method 经过几次返工后 因为我得到了 0 字节文件等内容 我现在有一个下载所有图像的解决方案 但下载
  • 在同一列上多次调用 Pandas df.sort_values() 会产生不同的结果?

    下面的例子 为什么会发生这种情况以及如何防止它 gt gt gt df pd DataFrame a list range 150 b 1 2 3 50 gt gt gt df sort values b equals df sort va
  • 动态确定类型参数后返回通用类型

    我有一个通用类 如下所示 public class MyClass
  • 在编译的 C 或 C++ 代码中加密密码

    我知道如何在终端中使用 GCC 和 CC 编译 C 和 C 源文件 但是我想知道编译后在这些文件中包含密码是否安全 例如 我检查用户输入的某个密码 例如 123 但似乎已编译的 C C 程序可能会被反编译 无论如何 有没有办法编译 C C