如何防止Edit框中的Password不被非法获取

使用RSA非对称加密登陆界面登陆密码,防止明文传输 一、RSA的概念           RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用,在java中可用作表单密码加密,工作原理可理大致是,首先服务器端会产生一对公钥和私钥,然后客户端在需要加密的时候会异步请求服务器端,获取公钥,并利用公钥进行加密操作(加密表单密码元素),服务器端收到加了密的用户密码,再使用私钥进行解密,从而获取加密前的明文密码。由于仅仅有了公钥 阅读详情
   Windows虽然是一个功能强大的操作系统,但其存在的一些先天性不足,给黑客留下了许多可乘之机,著名的BO程序就是利用Windows的这些漏洞来危害计算机的安全。笔者最近发现了一个很流行的专门获取Edit框Password的工具,甚至其源代码已在某报纸发表,这无疑是对Edit的Password功能的完全否定。本文将首先分析非法获取Password的原理,然后给出用Visual C++来实现保护Edit框中的Password不被非法获取的对策。

  (一) 非法获取Password的原理

  Edit是Windows的一个标准控件,当把其Password属性设为True时,就会将输入的内容屏蔽为星号(*),从而达到保护的目的。而Edit框中的内容可通过发WM_GETTEXT,EM_GETLINE消息来获取。黑客程序就是利用Edit的这个特性,首先枚举当前程序的所有子窗口,当发现枚举的窗口是EDIT并且具有ES_PASSWORD属性时,则通过SendMessage向此窗口发送WM_GETTEXT或EM_GETLINE消息,这样Edit框中的内容就一目了然了。

  (二) 对Password进行保护

  由上述分析可看出,Edit的漏洞在于没有检查发送WM_GETTEXT或EM_GETLINE消息者的身份,只要找到Edit窗口句柄,任何进程都可获取其内容。这里给出一种简单的方法来验证发送消息者的身份是否合法。

  1) 创建新CEdit类

  从CEdit继承一个子类CPasswordEdit, 申明全局变量g_bAuthorIdentity表明消息发送者的身份:

    BOOL g_bAuthorIdentity;
    
  然后响应CWnd的虚函数DefWindowProc,在这个回调函数中进行身份验证:

LRESULT CPasswordEdit::DefWindowProc(UINT message,
WPARAM wParam, LPARAM lParam)
    {
        // 对Edit的内容获取必须通过以下两个消息之一
        if(( message == WM_GETTEXT) ||
        ( message == EM_GETLINE))
        {
            // 检查是否为合法
            if( !g_bAuthorIdentity)
            {
                // 非法获取,显示信息
                AfxMessageBox(_T("我的密码,可不能让你看哦!"));
                //
                return 0;
            }
            // 合法获取
            g_bAuthorIdentity = FALSE;
        }
        return CEdit::DefWindowProc(message, wParam, lParam);
    }
  2) 在数据输入对话框中做处理

  在对话框中申明一个类成员m_edtPassword:

    CPasswordEdit m_edtPassword;
  然后在对话框的OnInitDialog()中加入下列代码:

    m_edtPassword.SubclassDlgItem(IDC_EDIT_PASSWORD, this);
  其目的是将控制与新类做关联。

  之后在对话框的数据交换中将身份设为合法:

    void CDlgInput::DoDataExchange(CDataExchange* pDX)
    {
        // 如果获取数据
// 注意:对于CPropertyPage类这里不需要
        if( pDX- >m_bSaveAndValidate) 条件
        if( pDX- >m_bSaveAndValidate)
        {
            g_bAuthorIdentity = TRUE;
        }
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CDlgInput)
        DDX_Text(pDX, IDC_EDIT_PASSWORD, m_sPassword);
        //}}AFX_DATA_MAP
}
  这样,Password输入框就会受到保护。

  (三) 需要注意的问题

  以上的方法仅针对VC程序,对于VB程序,需要借助VC做一个Password的ActiveX 控件,实现方法与上类似。同时以上程序在Visual C++6.0上通过,并且用黑客程序 PWBTool测试通过。

1Password作为环境配置中枢的实践指南 环境配置管理是现代软件交付中保障多环境一致性与安全性的基础能力,其核心在于将密钥、连接参数、上下文元数据统一建模并协同治理。传统方案常割裂‘人’与‘系统’的需求:Vault类工具面向自动化但缺乏语义表达,而密码管理器又被低估为仅存凭证的辅助工具。本文聚焦1Password在Secrets Management与Environment Configuration中的独特定位——通过Folder/Tag/Custom Fields等原生能力构建可读、可审、可协作的环境拓扑,实现开发者工作流(Developer 阅读详情

相关推荐

MFC Edit Control控件完全指南:从基础使用到高级定制

本文详细介绍了MFC中EditControl控件的开发与应用。主要内容包括:1)控件变量绑定和数据交换实现方法;2)样式设置与动态修改技巧;3)自定义派生类的开发流程,涵盖消息处理、输入验证和界面美化;4)动态创建与布局管理;5)高级功能如数据格式化、水印效果等。通过大量代码示例,展示了从基础到高级的EditControl开发技术,包括多行编辑、密码框、数字验证等常见场景的实现方法,为MFC开发者提供了全面的参考方案。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 384

Android:自己定义输入法(输入password时防止第三方窃取)

对于Android用户而言。一般都会使用第三方的输入法。但是,在输入password时(尤其是支付相关的password),使用第三方输入法有极大的安全隐患。眼下非常多网银类的APP和支付宝等软件在用户输入password时,都会弹出自己定义的输入法而不是直接使用系统输入法。 本文介绍的就是怎样实现一个简单的自己定义输入法。当然。也能够自己写一个Dialog加上几十个butto...

aofan9566的博客 193

PasswordEditText.zip

表格类型的密码输入框

前端屏蔽输入法(input输入框type=“password“显示明文)

背景 在项目中遇到扫描枪扫描二维码,二维码内容由数字和字母组成,使用一般input输入框时,有时会调用本地的输入法,导致扫出来会有各种问题,于是自己写了个,源码在这里分享给大家。 解决方案 1、input输入框如果type=password能满足我们的需求,但是是密文,我们要明文显示,实现源码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> ...

dinghongyu520的博客 5459

cedit 只允许 输入 数字 数字控件

cedit 只允许输入 数字,这个是很久以前做的第一个小程序,很有成就感,献给有需要的人,少走弯路。估计现在很少人用MFC了,纪念一下吧

VC获取编辑框的密码get_edit_password代码包

摘要:VC/C++源码,界面编程,获取密码 VC++ get_edit_password,获取编辑框的密码代码包,自动识别窗口句柄,打开一个需要输入密码的页面,输入密码,然后拖动窗口中的放大镜到密码框上,程序可自动获取到坐标和密码是多少,有意思吧,不过程序比较老,貌似在IE8和火狐下已经失效,你可以借此了解一下原理也可以。 运行环境:Windows/Visual C/C++

从CEdit派生一个新类模拟Edit的ES_PASSWORD风格

#if !defined(AFX_PASSWORDEDIT_H__3F7BD24B_4C2C_45D3_B048_1FA7C12CD111__INCLUDED_) #define AFX_PASSWORDEDIT_H__3F7BD24B_4C2C_45D3_B048_1FA7C12CD111__INCLUDED_ #if _MSC_VER > 1000 #pragma once #en

zgl7903的专栏 1607

晶圆测试(Wafer Sort)的核心技术与良率提升策略

晶圆测试(Wafer Sort)是芯片制造中的关键“入学考试”,通过探针台与自动测试设备(ATE)对晶圆上的芯片进行功能与参数测试,筛选不合格芯片以控制成本。本文深入解析了其核心技术,包括自动化视觉系统对准、测试流程优化策略,并探讨如何利用测试数据驱动良率提升,展望了DFT与AI智能测试的未来趋势。

e4f5g6h的博客 515

MFC如何动态改变CEdit控件的内容??如果要写一个记住密码的动作,直接去文件里面找到之后显示变量值。

1、在类向导里添加CEdit控件的CString m_strBtn;变量,然后在按钮的消息处理函数中:m_strBtn = "内容";UpdateData(FALSE); 2、在按钮的消息处理函数中:GetDlgItem(IDC_EDIT1)->SetWindowText("内容");

Mileeeey的博客 520

KT148A语音芯片SOP外挂功放芯片8002D的说明_V1

KT148A语音芯片内置8欧姆0.5W的功放,所以一般的应用场景,播放一些提示音音量是足够的。但是有的需求还需要驱动更大的扬声器,实现更大的播放音量,这里我们给出解决方案。KT148A+HAA8002D的组合

qyvhome的博客 2148

NY8A053E 例程 之 PWM Ouput

更多关于NY8A053E的相关例程请留言!

倪彬笑阳的博客 2924

防止密码被非法获取

防止密码被非法获取作者:郝峰----Windows虽然是一个功能强大的操作系统,但其存在的一些先天性不足给黑客留下了许多可乘之机,著名的BO程序就是利用Windows的这些漏洞来危害计算机的安全。笔者最近发现了一个很流行的专门获取Edit框Password的工具,甚至其源代码已在某报纸上发表了,这无疑是对Edit的Password功能的完全否定。本文将首先分析非法获取P

1280

国税局发票查验中英文验证码识别最新版,识别率99.9%

采用深度学习进行发票查验验证码模型的训练,在我电脑上模型训练的环境如下: 显卡:RTX 2080TI tensorflow-gpu:2.5.3 1 训练集和测试集的准备 发票查验的验证码分为4种类型,分别为黑色、红色、黄色、蓝色,经过我的测试,采用4个模型的效果最好,每个模型对应识别一种类型的验证码。 首先我们4种类型的验证码都准备10万张。 00黑色类型的验证码: 01红色类型的验证码: 02黄色类型的验证码: 03蓝色类型的验证码: 验证码图像图像准备好后,对其进行标记,也就是对验证码重命名:

Keras深度学习 83万+

防止Edit框中的Password不保密

      Windows虽然是一个功能强大的操作系统,但其存在的一些先天性不足,给黑客留下了许多可乘之机,著名的BO程序就是利用Windows的这些漏洞来危害计算机的安全。笔者最近发现了一个很流行的专门获取Edit框Password的工具,甚至其源代码已在某报纸发表,这无疑是对Edit的Password功能的完全否定。本文将首先分析非法获取Password的原理,然后给出用Visual C++来

1088

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

STM32硬件SPI配置为全双工模式下不要单独使用HAL_SPI_Transmit API及HAL_SPI_TransmitReceive改造方法

STM32 HAL库中SPI全双工模式使用问题总结:当配置为全双工模式时,单独使用HAL_SPI_Transmit会导致后续接收数据异常,原因是该API未处理接收数据。改造HAL_SPI_TransmitReceive使其支持单纯的发送/接收模式:当pTxData为NULL时只关心接收数据,pRxData为NULL时只关心发送数据,但仍会保持全双工通信。建议在全双工模式下统一使用改造后的HAL_SPI_TransmitReceive函数。

kevin1499的博客 901

[C/C++]如何防止Edit框中的密码不被非法获取

来源:http://www.st0754.net Windows虽然是一个功能强大的操作系统,但其存在的一些先天性不足,给黑客留下了许多可乘之机,著名的BO程序就是利用Windows的这些漏洞来危害计算机的安全。笔者最近发现了一个很流行的专门获取Edit框Password的工具,甚至其源代码已在某报纸发表,这无疑是对Edit的Password功能的完全否定。本文将首先分析非法获取Passw

djimon的专栏 1178

华为OD机试真题2026双机位C卷 C语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 172

防止密码被非法获取 (转)

防止密码被非法获取 (转)[@more@] 防止密码被非法获取 作者:郝峰 ----windows虽然是一个功能强大的操作系统,但其存在的一些先天性不足给黑客 留下了许多可乘之机,著名的BO程序就是利用Windows的这...

csd3176的博客 261

BMP280气压传感器原理图设计,已量产(压力传感器)

做嵌入式项目时,“小而精” 的传感器模块永远是刚需 —— 尤其是需要同时测气压和温度的场景,比如无人机定高、环境监测节点、穿戴设备等。最近捣鼓了一款 BMP280 的 Breakout 板,封装做得很紧凑,同时兼顾了稳定性和兼容性,这里单聊硬件设计细节。

不脱发的程序猿 299

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VC++中非法探取密码的原理及其防范

引言  在Windows下输入密码时,为了安全起见通常都以星号来屏蔽用户输入的密码。如果需要在自己编写的应用程序中需要用户输入密码,通常的选择就是选用Edit控件并设置其Password属性。虽然Edit控件的Password属性在一定程度上可以保护用户的密码不被视觉偷窥,但在许多窥探密码的黑客软件面前却不起任何作用,密码将赫然暴露于攻击者面前。显然仅仅依靠Edit控件本身的Password功

Jinhill's Blog 1191

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MFC:非法探取密码的原理及其防范

<br />摘自:http://www.svnclub.com/index.php?q=node/208<br /><br />引言<br />在Windows下输入密码时,为了安全起见通常都以星号来屏蔽用户输入的密码。如果需要在自己编写的应用程序中需要用户输入密码,通常的选择就是选用Edit控件并设置其Password属性。 虽然Edit控件的Password属性在一定程度上可以保护用户的密码不被视觉偷窥,但在许多窥探密码的黑客软件面前却不起任何作用,密码将赫然暴露于攻击者面前。显然仅仅依靠Edit控件本

问题记事本 1165

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: win32asm原理
下一篇: 在VB中用API实现多媒体
icemanpro
博客等级 码龄25年 4粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值