首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC控件ListBox中怎么将某一列像密码列进行加密显示

2012-11-08 
MFC控件ListBox中如何将某一列像密码列进行加密显示程序功能是实现用户管理包括增删改用户信息。ListBox中

MFC控件ListBox中如何将某一列像密码列进行加密显示
程序功能是实现用户管理包括增删改用户信息。
ListBox中显示所以用户的信息,包括用户ID、用户名、用户密码、用户权限与备注。
问题是用户密码会被明明白白地显示出来,如何进行加密,让这一密码列以加密后的字符显示出来?

ListBox控件的相关代码如下:
   
  // 初始化显示m_lListUser
this->m_lListUser.InsertColumn(0,_T("用户ID"));
this->m_lListUser.InsertColumn(1,_T("用户帐号"));
this->m_lListUser.InsertColumn(2,_T("用户密码"));
this->m_lListUser.InsertColumn(3,_T("用户权限"));
this->m_lListUser.InsertColumn(4,_T("备  注"));

// 设定m_lListUser的列宽等
RECT rect;
this->m_lListUser.GetWindowRect(&rect);
int wid=rect.right-rect.left;

this->m_lListUser.SetColumnWidth(0,wid/8);
this->m_lListUser.SetColumnWidth(1,wid/5);
this->m_lListUser.SetColumnWidth(2,wid/5);
this->m_lListUser.SetColumnWidth(3,wid/5);
this->m_lListUser.SetColumnWidth(4,11*wid/40);

this->m_lListUser.SetExtendedStyle(LVS_EX_FULLROWSELECT);

     // 删除既有数据项
this->m_lListUser.DeleteAllItems();

// 从数据库中提取最新数据并将结果集显示于m_lListUser
CString sqlstr;
_variant_t effectSum;

pRst.CreateInstance(__uuidof(Recordset));
sqlstr.Format(_T("select * from UserTab"));

try
{
pRst=pCnn->Execute(_bstr_t(sqlstr),&effectSum,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}

if(effectSum)
{
CString temp;
_variant_t tmp;
int i=0;

while(!pRst->_EOF)
{
tmp=pRst->GetCollect("UserId");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
else
temp=_T("");
this->m_lListUser.InsertItem(i,temp);

tmp=pRst->GetCollect("UserName");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
else
temp=_T("");
this->m_lListUser.SetItemText(i,1,temp);

tmp=pRst->GetCollect("UserPwd");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
else
temp=_T("");
this->m_lListUser.SetItemText(i,2,temp);

tmp=pRst->GetCollect("UserAut");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
else
temp=_T("");
this->m_lListUser.SetItemText(i,3,temp);

tmp=pRst->GetCollect("UserNote");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
else
temp=_T("");
this->m_lListUser.SetItemText(i,4,temp);

i++;
pRst->MoveNext();
}
}

请问各位高手,如何做才能达到对密码列进行加密显示的要求?
  在此先谢谢各位的帮忙了.

[解决办法]
tmp=pRst->GetCollect("UserPwd");
if(tmp.vt != VT_NULL)
temp=(LPCTSTR)_bstr_t(tmp);
将上面的取得的密码字符串temp按照你自己的加密规则转化一下再显示就行
例如:temp=_T(L"45532396");
假如你的加密规则为:4->a,5->b,3->c,2->d,9->e,6->t
这样转化后temp=_T("abbcdcet");然后显示在列表框
[解决办法]

探讨

除此之外还有别的方法吗?

热点排行