2013-11-24 6 views
2

Привет, ребята, у меня проблема. В моем приложении Java есть форма входа. В этом есть опция «забыли пароль ..?» Я хочу отправить пароль пользователя из этого. В этом случае адрес электронной почты пользователя, который идентифицирует имя пользователя, дает ... проблема на этом. Но проблема в том, что пароли зашифрованы. Как я могу получить эти pwd по умолчанию и отправить его. Мой Логин Имя Tabel это Войти и 3 поля ип, PW, тип (администратор или предел) .. мой почтовый код посыла следующим образом ..Отправить пароль по электронной почте

try{ 

    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.gmail.com"); // for gmail use smtp.gmail.com 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.debug", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.port", "465"); 
    props.put("mail.smtp.socketFactory.port", "465"); 
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.socketFactory.fallback", "false"); 

    Session mailSession = Session.getInstance(props, new javax.mail.Authenticator() { 

     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("[email protected]", "password"); 
     } 
    }); 

    mailSession.setDebug(true); // Enable the debug mode 

    Message msg = new MimeMessage(mailSession); 

    //--[ Set the FROM, TO, DATE and SUBJECT fields 
    msg.setFrom(new InternetAddress("[email protected]")); 
    msg.setRecipients( Message.RecipientType.TO,InternetAddress.parse("[email protected]")); 
    msg.setSentDate(new Date(232323)); 
    msg.setSubject("Hello World!"); 

    //--[ Create the body of the mail 
    msg.setText("Hello from my first e-mail sent with JavaMail"); 

    //--[ Ask the Transport class to send our mail message 
    Transport.send(msg); 

}catch(Exception E){ 
    System.out.println("Oops something has gone pearshaped!"); 
    System.out.println(E); 
} 
+7

** Не храните пароли в текстовом формате **. Реверсивное шифрование (почти) не лучше. Вы не поняли, что означает хеширование. – SLaks

+0

Являются ли пароли зашифрованными или они хэшированы? Зашифрованные пароли необходимо будет расшифровать с помощью соответствующего ключа (ов). Если пароль хэшируется, вы не сможете отправить пользователю свой пароль. Вместо этого вы должны попросить пользователя создать новый пароль. – Max

+6

Безопасность ** жесткий **. Не заново изобретайте колесо. Используйте существующий проверенный пакет проверки подлинности. – SLaks

ответ

3

Пароли обычно не хранятся в зашифрованном виде, а в форма результата применения secure one way hash function; лучшие практики также включают использование пользователя (или, по крайней мере, системы), определенного salt, для предотвращения атак с использованием rainbow tables. Все это говорит о том, что вы, вероятно, должны просто установить новый (искузируемый) пароль для пользователя и затем сообщить им, что он теперь настроен на это (например, прочитайте таблицу сотрудников, используйте последние шесть цифр своего ssn и их адрес улицы номер).

Смежные вопросы