用安全控件生成密码对话框

转载 2010年06月04日 09:04:00

下列代码示例演示了如何使用安全控件来生成一个密码对话框。我们可以在资源文件中通过使用NUMSECRETED来定义一个数字安全控件,而通过使用SECRETED资源结构来定义一个字母安全控件。示例代码中含有两个SECRETED结构下的对话框。第一个包括密码和确认字段。第二个只是一个简单的文本框,可以输入密码字段。

 

lib:

 

LIBRARY     avkon.lib   //Avkon resources

资源文件

#define KMaxPasswordLength 10
 
RESOURCE DIALOG r_dialog_password_and_confirmation_query
{
flags = EGeneralQueryFlags;
 
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
items =
{
DLG_LINE
{
type = EAknCtMultilineQuery;
id = EMultilineFirstLine;
control = AVKON_DATA_QUERY
{
layout = EMultiDataFirstSecEd;
label = "Enter Password:";
control = SECRETED
{
num_letters = KMaxPasswordLength;
};
};
},
DLG_LINE
{
type = EAknCtMultilineQuery;
id = EMultilineSecondLine;
control = AVKON_DATA_QUERY
{
layout = EMultiDataSecondSecEd;
label = "Confirm Password:";
control = SECRETED
{
num_letters = KMaxPasswordLength;
};
};
}
};
}
 
 
RESOURCE DIALOG r_dialog_password_query
{
flags = EAknGeneralQueryFlags;
 
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
items =
{
DLG_LINE
{
type = EAknCtQuery;
id = EGeneralQuery;
control = AVKON_DATA_QUERY
{
layout = ECodeLayout;
label = "Enter Password:";
control = SECRETED
{
num_letters = KMaxPasswordLength;
};
};
}
};
}

头文件

#ifndef __PASSWORDAPPUI_H__
#define __PASSWORDAPPUI_H__
 
const TInt KMaxPasswordLength = 10;
//...
 
class CPasswordAppUi : public CAknAppUi
{
//...
private:
//...
TBool ShowPasswordAndConfirmationDialogL(TDes& aPassword);
TBool ShowPasswordDialogL(TDes& aPassword);
void UsePasswordDialogsL(); //a test method for dialogs
private:
//...
HBufC* iPassword;
};
 
#endif // __PASSWORDAPPUI_H__

源文件

#include <AknQueryDialog.h>
#include <Password_0xE0859401.rsg>
 
//...
CPasswordAppUi::CPasswordAppUi():iPassword(NULL)
{
}
 
CPasswordAppUi::~CPasswordAppUi()
{
//...
if (iPassword)
{
delete iPassword;
iPassword=NULL;
}
}
 
TBool CPasswordAppUi::ShowPasswordAndConfirmationDialogL(TDes& aPassword)
{
TBuf<KMaxPasswordLength> password;
TBuf<KMaxPasswordLength> confirmation;
 
CAknMultiLineDataQueryDialog* dlg =
CAknMultiLineDataQueryDialog::NewL(password, confirmation);
 
if (!dlg->ExecuteLD(R_DIALOG_PASSWORD_AND_CONFIRMATION_QUERY))
{
//Cancel key pressed
//do something...
return EFalse;
}
else
{
if(password.Compare(confirmation) == 0)
{
//password and confirmedPassword match.
//do something...
 
aPassword.Copy(password);
return ETrue;
}
else if(password.Length() != confirmation.Length())
{
//password buffer and confirmation buffer have different lengths
//do something...
 
return EFalse;
}
else
{
//password buffer and confirmation buffer have different contents
//do something...
 
return EFalse;
}
}
}
 
TBool CPasswordAppUi::ShowPasswordDialogL(TDes& aPassword)
{
TBuf<KMaxPasswordLength> password;
 
CAknTextQueryDialog* dlg =
new(ELeave) CAknTextQueryDialog(password, CAknQueryDialog::ENoTone );
 
if(!dlg->ExecuteLD(R_DIALOG_PASSWORD_QUERY))
{
//Cancel key pressed
//do something...
return EFalse;
}
else
{
//OK do something...
aPassword.Copy(password);
return ETrue;
}
}
 
 
void CPasswordAppUi::UsePasswordDialogsL()
{
//reset old password if exists
if(iPassword)
{
delete iPassword;
iPassword=NULL;
}
 
iPassword = HBufC::NewL(KMaxPasswordLength);
TPtr bufPtr = iPassword->Des();
 
//show password and confirmation dialog and store the given
//password in member variable iPassword if input values are ok
TBool ret = ShowPasswordAndConfirmationDialogL(bufPtr);
 
if(ret)
{
//create a temporary buffer to store the given password
HBufC* tmpPassword = HBufC::NewLC(KMaxPasswordLength);
TPtr tmpPtr = tmpPassword->Des();
 
//show a password dialog
TBool ret2 = ShowPasswordDialogL(tmpPtr);
 
if(ret2)
{
//compare the given password with member variable iPassword
if (tmpPassword->Compare(*iPassword) == 0)
{
//passwords match ok, do something....
}
else
{
//The given password is not correct, do something...
}
}
else
{
//the user pressed cancel, there is no password to compare
//do something...
}
 
CleanupStack::PopAndDestroy(); //tmpPassword
}
else
{
//giving a new password failed, do something...
delete iPassword;
iPassword=NULL;
}
}

FROM

 

深度学习实战-唐诗生成

课程首先讲解RNN与LSTM网络结构特点以及实例演示如何使用Tensorflow构造网络模型,基于唐诗数据集建立LSTM模型进行序列预测。代码示例演示如何使用Tensorflow从零开始训练唐诗生成网络模型。 专属会员卡更超值:http://edu.csdn.net/lecturer/1079
  • 2017年07月13日 15:31

WEB密码安全输入控件

在没有使用ssl加密的系统中登录,登录的用户名和密码都是在网络中通过明文传送,安全性较低,可以使用插件形式对密码进行加密后再传送,使用键盘钩子拦截键盘输入内容,防止被其它工具记录,类似银行网银安全输入...
  • nxiaoping
  • nxiaoping
  • 2013-11-18 20:08:43
  • 4636

安全控件开发原理分析 支付宝安全控件开发 网银密码控件 C++

浏览器安全控件是如果支付宝一样结合web程序密码数据安全处理的程序,采用C++语言开发通常的安全控件分为两种,一种是指支持IE内核的浏览器,一种支持所有内核的浏览器,支付宝采用的是支持所有内核的浏览器...
  • a416090287
  • a416090287
  • 2016-08-03 21:22:33
  • 1487

绕过ActiveX破解招行密码输入框

核心提示,通过本文的提示,可达到如下目的:1、木马制作者。可以绕过招行(以及同类的ActiveX)的保护,获取用户的帐户和密码(密文);2、非IE使用者。可以达到使用其他系统其他浏览器登录招行(以及其...
  • AppleDotnet
  • AppleDotnet
  • 2007-02-07 18:17:00
  • 4465

基于Chrome,foxfire(WeiKit内核)浏览器的密码安全控件插件开发(NPAPI)

经过几番努力,IE版本的安全控件成功开推。
  • song_0962
  • song_0962
  • 2014-08-03 16:24:49
  • 2916

网上银行“安全登录控件”分析

国内的一些银行的网上银行系统为了用户信息的安全,在登录页面上使用了名为“安全登录控件”的东西,取代了传统的 HTML 的输入控件(Input),下面就对用户量较大的招商银行和工商银行的登录界面及“安全...
  • sunlen
  • sunlen
  • 2006-11-13 23:24:00
  • 14199

【网络安全】关于前端js密码控件安全性摘录(坑待填)

最近用react做了一个自定义密码键盘,用于输入敏感信息,那么前端的加密自然需要纳入考虑的范畴之内,所以特意写此文来记录一下探究问题的学习思路和网上资料的一些整理关键词句 JS代码本身的加密 常见加密...
  • w8897282
  • w8897282
  • 2017-10-10 16:29:12
  • 293

密码安全控件,类似银行密码输入控件

  • 2010年09月06日 12:41
  • 696KB
  • 下载

安全控件 安全登录控件 浏览器插件 activex

  • 2013年12月08日 02:25
  • 609KB
  • 下载

html5移动开发之密码键盘

  • 2015年04月20日 15:12
  • 2.45MB
  • 下载
收藏助手
不良信息举报
您举报文章:用安全控件生成密码对话框
举报原因:
原因补充:

(最多只允许输入30个字)