随机密码生成器

搞网站过程中难免需要设置各种各样的密码…..一个小巧的随机密码生成器是必不可少的,最近在学MFC顺手开发了一个适合自己的简易随机密码生成器。也算是读书以来开发的第一个应用程序吧。贴出来纪念一下,程序随机生成一个由大小写字母与数字组成的16位密码,可刷新获取新的随机密码,获取同时自动复制到剪切板中方便粘贴使用。

程序界面:

rpw

下载地址: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

  1. 李卿 Reply
    December 10, 2013 at 5:02 am

    这种东西……用 MFC 做,怎么感觉有点儿…… 蛋疼

    • yimis Reply
      December 10, 2013 at 12:13 pm

      主要目前图形化的我只会 MFC 这一个…..

Leave A Comment

Please be polite. We appreciate that. Your email address will not be published and required fields are marked