-2

メール アドレスでユーザー名とパスワードを取得し、メール [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; 

} 

そして、ユーザーの存在を確認してメールを送信するための私のアクティビティクラス..ここは以下です

 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
4

1 に答える 1

3

データベースからパスワードを回復することはできません。本当に元のパスワードを復元したい場合、セキュリティはかなり低くなります(パスワードをプレーンテキストとして保存しないことを望みますか?)。

新しいものを生成してデータベースに保存し、ユーザーに送信することを強くお勧めします。

彼が新しいパスワードで初めてログインした後、あなたは彼に新しいパスワードを定義するように強制する必要があります。パスワード自体は、少なくともソルト化およびハッシュ化する必要があります。そのトピックの詳細については、MD5とsaltを検索してください。それは十分に安全なはずです。

于 2012-05-30T14:05:06.477 に答える