我试图通过电子邮件地址获取用户名和密码并将其作为电子邮件发送[PASSWORD RECOVERY] ..... 我可以通过电子邮件检查用户的存在,但现在我需要通过他/她之前提供的电子邮件获取用户名和密码....
这是我的DB_Class
public boolean getEmail(String emailNo) throws SQLException //pass the EmailNo which you want in where clause
{
Cursor mCursor = db.rawQuery("SELECT Username, Passwords FROM " + USERS_TABLE + " WHERE EmailNO='"+emailNo+"'",null);
if (mCursor != null) {
if(mCursor.getCount() > 0)
return true;
}
return false;
}
我的Activity类用于检查用户存在并发送电子邮件。以下是
public void onClick(View v) {
String EmailAddress = txtEmailAddress.getText().toString();
try{
if(EmailAddress.length() > 0)
{
DBAdapter dbUser = new DBAdapter (RecoverPassword.this);
dbUser.open();
if(dbUser.getEmailAddress(EmailAddress))
{
Toast.makeText(RecoverPassword.this,"Email Successfully ", Toast.LENGTH_LONG).show();
String to = txtEmailAddress.getText().toString();
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
email.putExtra(Intent.EXTRA_SUBJECT, "Password Recovery");
if(dbUser.getEmail(EmailAddress)){
email.putExtra(Intent.EXTRA_TEXT,dbUser.getEmailAddr(obj.getusername(),obj.getpassword())) ;
}else{
Toast.makeText(RecoverPassword.this,"Email Not matching " ,Toast.LENGTH_LONG).show();
}
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "gmail :"));
}else{
Toast.makeText(RecoverPassword.this,"Invalid Email", Toast.LENGTH_LONG).show();
txtEmailAddress.setTex
答案 0 :(得分:3)
您永远不能从数据库中恢复密码。如果你真的想恢复原始密码,你的安全性很低(希望你不要将密码存储为纯文本?)。
我强烈建议您生成一个新的,将其存储在数据库中并将其发送给用户。
第一次使用新密码登录后,您应该强制他定义新密码。密码本身应至少加盐和散列。搜索MD5和salt以获取有关该主题的更多信息。这应该足够安全。