c语言程序中如何加密密码,在C源代码中加密密码

有没有办法以一种在编译的应用程序中很难找到的方式保存静态密码?

我需要两个不同的应用程序.一个是Windows的轻量级FTP客户端,只连接到一个硬编码服务器.

另一个是Objective C游戏,它允许用户创建级别包并使用密码来保存它们.它们可以在没有密码的情况下播放,但不能在关卡编辑器中打开.我正在使用AES加密密码,但我必须以某种方式保存密码以进行解密.

到目前为止,我发现的唯一想法是将密码保存为一个字符串,而不是多个字符串.这对游戏来说非常有效,因为我可以连接已经存在的字符串.或者我可以将其保存为长字符串并使用秘密算法从该字符串中获取密码 – 尽管这引出了一个问题:Windows上的C应用程序或OS X上的Cocoa应用程序是否可以被反编译以找到该算法?

有更安全的方法吗?

最佳答案 字符串文字通常保留并存储在二进制文件中的某处,即使在编译的C源代码中也是如此

您可以做的是一种类似于如何(正确实施)Web应用程序验证登录信息的方法,该信息存储在数据库中.只需以密码形式存储密码即可.通常,该方法是使用MD5盐(here is a description and some sample PHP code).您可以做的不是传输或存储明文密码,而是散列用户输入并根据存储的哈希值检查哈希值.匹配哈希对应于匹配密码.

编辑

这对FTP服务器的情况没有帮助,因为你无法修改它的源代码……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值