如何防止密码被非法获取?

53 篇文章 0 订阅
21 篇文章 0 订阅

从下载的文档中看到的,不知道出处。如作者看到,请联系我修改,谢谢合作!

 

[问题提出]
  这两天大家比较专注在获取Edit密码框的密码.在盗取时,我们如何防范呢?
  [解决方法]
  此方法针对于通过SendMessage向此窗口发送WM_GETTEXTEM_GETLINE消息来取得密码.跟我来.
 [程序实现]
  方法很简单,CWnd::DefWindowProc函数拦截得到的消息(Edit发的).
  建立名为My的对话框工程.建立一个Edit控件ID=IDC_EDIT1.建一个新类名为CMyProtectEdit,派生于CEdit.
  在MyDlg.cpp中声明全局变量:BOOL g_bIdentity;
  BOOL g_bIdentity;
  在MyProtecEdit.cpp:
  extern BOOL g_bIdentity;
  响应CMyProtectEditDefWindowProc函数:
  LRESULT CMyProtectEdit::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
  {
    // TODO: Add your specialized code here and/or call the base class
    // Edit的内容获取必须通过以下两个消息之一,不对其采用默认的处理:
    if(( message == WM_GETTEXT) || ( message == EM_GETLINE))
    {  //检查是否为合法
     if(!g_bIdentity)
     {  //非法获取,显示非法信息
       AfxMessageBox(_T("不能让你看我的密码,:( !"));
       return 0;
     )
     g_bIdentity = FALSE;//合法获取
    }
    return CEdit::DefWindowProc(message, wParam, lParam);
  }
  然后在MyDlg.cpp
  void CMyDlg::DoDataExchange(CDataExchange* pDX)
  {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CGetPasswordDlg)
    // NOTE: the ClassWizard will add DDX and DDV calls here
    if( pDX->m_bSaveAndValidate)
    {
     g_bIdentity = TRUE;
    }   
    //}}AFX_DATA_MAP
  }
  即可.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值