• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

用户名和密码直接写在C++的代码里安全吗?如果不安全应该怎么做?

listhome 2007-06-21 04:37:20
用户名和密码直接写在C++的代码里安全吗?如果不安全应该怎么做?
...全文
921 点赞 收藏 31
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
olololollo 2008-05-13
用户名+指纹的方式可以解决你顾虑的问题!!
或者仅通过指纹的方式登录系统也是可以的

——指纹开发者联盟 www.biodn.com
回复
绝世痞子 2007-06-22
如果能全程跟踪程序执行.
基本上除了不可逆算法,其他都谈不上安全.
其实密码管理中好几个漏洞:
1.输入.可以安装键盘HOOK或驱动来获取.
2.到密码框,虽然是显示的是*号.但一样是明文.
3.读取输入的密码后,没有清除用于保存密码内容的缓存.虽然你对密码进行了加密,但缓存的内容仍然是未加密的.
4.对可逆密码,会有一个解密的过程,解密后密码就是明文了.这时候也同样不安全.

还有:指纹都可以把手指砍下来用.视网膜就不知道了.
回复
qiyefei19830303 2007-06-22

mudunke775(竹本无心) ( ) 信誉:100 Blog 加为好友 2007-06-21 17:07:04 得分: 0


如果你在程序中把这个写死,很安全,比如:
cstring st1;
...//st1获得用户输入用户名
cstring st2
...//st2获得用户密码

if(st1 == "小明" && st2 =="12345")
{
}

这样是安全的


相当不安全!而且轻易就能发现,
回复
Prince_vegeta 2007-06-22
放在程序中,无论是明文还是密文都会被静态或动态PJ的。
回复
luohongming 2007-06-22
CString strPassword;
strPassword="a";
strPassword+="b";
strPassword+="c";
......
回复
懒伞 2007-06-22
没有决对安全的东西。所以建议你还是建立一个服务器端进行密码验证。
回复
healer_kx 2007-06-22
不可能安全。
回复
zhangwanlong 2007-06-22
非常不安全。。用UE打开都能看见
回复
sjdf 2007-06-22
lz你要想实现runas的功能,那用户名和密码不管你存在什么地方,怎么加密都没用。
估计你会用CreateProcessWithLogonW来实现,或者先用LogonUser然后再CreateProcessAsUser,那我只要用调试器运行你的程序,然后在CreateProcessWithLogonW或者LogonUser加个断点,等程序断到这的时候,看看这两个API的参数,用户名和密码就在眼前……
回复
laughly 2007-06-21
加密一下吧,至少会在内存里明文存储的
回复
zhangyq73 2007-06-21
当然不安全,建一张表,将用户名,密码放到表中。
回复
hchua 2007-06-21
用16进制的编辑器怎么样才能知道竹本无心的代码里哪一个数组是用户名和密码?
回复
scorpiotears 2007-06-21
说真的,没有绝对保险的办法,

直接写在编码里也可以,前提是有一个足够强劲的壳
回复
youngwolf 2007-06-21
如果你在程序中把这个写死,很安全,比如:
cstring st1;
...//st1获得用户输入用户名
cstring st2
...//st2获得用户密码

if(st1 == "小明" && st2 =="12345")
{
}

这样是安全的

=======================
这是谁说的?!
随便找个16进制编辑器就可以更改!以前我的一个工程,由于是演示的,做的很粗糙,我的数据库密码是写死在程序里的,后面数据库更改了,我直接编辑EXE后,就可以用了!如果字符串改段短,将非常简单,直接改。如果字符串变长,将有困难!
回复
listhome 2007-06-21
因为需要用户名和密码取得另一个用户的权限!类似于Runas的功能
回复
Prince_vegeta 2007-06-21
很奇怪,为什么要放在程序里?
回复
bobob 2007-06-21
char szAlpha[]="abcdefghijklmnopqrstuvwxyz";

要表示"abc"的话,
char szMyBuf[MAX_SIZE];
memset(szMyBuf,0,MAX_SIZE);
szMyBuf[0]=szAlpha[0];
szMyBuf[1]=szAlpha[1];
szMyBuf[2]=szAlpha[2];


回复
ggglivw 2007-06-21
外部加密
回复
bobob 2007-06-21
mudunke775(竹本无心) ( ) 信誉:100 Blog 加为好友 2007-06-21 17:07:04 得分: 0


如果你在程序中把这个写死,很安全,比如:
cstring st1;
...//st1获得用户输入用户名
cstring st2
...//st2获得用户密码

if(st1 == "小明" && st2 =="12345")
{
}

这样是安全的


=====================》
非也

回复
slio2008 2007-06-21
RC4 算法
windows cryptAPI
加密密钥和解密密钥是同一个 只要密钥不泄露 全球目前没解密方法
#include <wincrypt.h> 里面有RC4的API
www.vckbase.com里有现成的加解密代码 你可以自己指定一个固定的32个字母的密钥 也可以利用API产生唯一性的一个密钥 另外源字符串就是你的用户名和密码 目的字符串就是你加密后的用户名和密码 到要用用户名和密码时 就解密
其他没什么要改的
回复
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2007-06-21 04:37
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……