搞网站过程中难免需要设置各种各样的密码…..一个小巧的随机密码生成器是必不可少的,最近在学MFC顺手开发了一个适合自己的简易随机密码生成器。也算是读书以来开发的第一个应用程序吧。贴出来纪念一下,程序随机生成一个由大小写字母与数字组成的16位密码,可刷新获取新的随机密码,获取同时自动复制到剪切板中方便粘贴使用。
程序界面:
下载地址:http://pan.baidu.com/s/17qpz7
程序在 Microsoft Visual Studio 2013 下用C++ MFC开发,其他如密码长度,包含字符类型,固定包含字符 等等都可以依照个人使用习惯添加修改………
主要代码如下:
[php]
void CRandomPassWordDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
char m,key[20];
for (int i = 0; i < 16; i++)
{
loop: m = rand() % 100 + 22;
if ((m != 58 && m != 59 && m != 60 && m != 61 && m != 62 && m != 63 && m != 64 && m != 91 && m != 92 && m != 93 && m != 94 && m != 95 && m != 96) && (m >= 48))
key[i] = m;
else goto loop;
}
key[16] = ‘\0’; //编码问题需要手动添加结束标记
m_key = key; // char to CString 可直接赋值
UpdateData(false);
//复制到剪切板
if (OpenClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, m_key.GetLength() + 1);
buffer = (char*)GlobalLock(clipbuffer);
int len = WideCharToMultiByte(CP_ACP, 0, m_key, m_key.GetLength(), NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, m_key, m_key.GetLength() + 1, buffer, len + 1, NULL, NULL); //编码问题需要使用到 WideCharToMultiByte
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT, clipbuffer);
CloseClipboard();
}
}
[/php]
初入MFC新手,勿喷,有问题请留言,期待我的下一个功能强大的随机密码生成器吧…..
2 comments
李卿
December 10, 2013 at 5:02 am这种东西……用 MFC 做,怎么感觉有点儿…… 蛋疼
yimis
December 10, 2013 at 12:13 pm主要目前图形化的我只会 MFC 这一个…..