Safe storing passwords for user's mailbox












0














I know there are dozens of topics about storing a passwords in DB, but all of them are missing one approach: what if I want to use this password to authenticate my app to an external service?



Today I'm making a mailbox module to my app and here's where I've bumped a wall. How to store a password to the user's mailbox, so the server of my app can read it from database, make a call to mail server and get messages?



If I'll store it as plain text - it's obvious suicide.
If I'll encrypt it (hash) - it's unreversible so I can't properly sign in to mail server.



What to do?? Help please! :)



Thank you in advance and best regards,
Tom










share|improve this question






















  • If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
    – Andreas
    Nov 19 '18 at 16:38












  • I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
    – T.Fruba
    Nov 19 '18 at 16:44












  • Then you need to encrypt, not hash, the email password.
    – Andreas
    Nov 19 '18 at 16:50










  • What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
    – T.Fruba
    Nov 19 '18 at 16:52






  • 1




    encrypt =/= hash, one is reversible, the other is not.
    – luk2302
    Nov 19 '18 at 16:53
















0














I know there are dozens of topics about storing a passwords in DB, but all of them are missing one approach: what if I want to use this password to authenticate my app to an external service?



Today I'm making a mailbox module to my app and here's where I've bumped a wall. How to store a password to the user's mailbox, so the server of my app can read it from database, make a call to mail server and get messages?



If I'll store it as plain text - it's obvious suicide.
If I'll encrypt it (hash) - it's unreversible so I can't properly sign in to mail server.



What to do?? Help please! :)



Thank you in advance and best regards,
Tom










share|improve this question






















  • If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
    – Andreas
    Nov 19 '18 at 16:38












  • I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
    – T.Fruba
    Nov 19 '18 at 16:44












  • Then you need to encrypt, not hash, the email password.
    – Andreas
    Nov 19 '18 at 16:50










  • What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
    – T.Fruba
    Nov 19 '18 at 16:52






  • 1




    encrypt =/= hash, one is reversible, the other is not.
    – luk2302
    Nov 19 '18 at 16:53














0












0








0







I know there are dozens of topics about storing a passwords in DB, but all of them are missing one approach: what if I want to use this password to authenticate my app to an external service?



Today I'm making a mailbox module to my app and here's where I've bumped a wall. How to store a password to the user's mailbox, so the server of my app can read it from database, make a call to mail server and get messages?



If I'll store it as plain text - it's obvious suicide.
If I'll encrypt it (hash) - it's unreversible so I can't properly sign in to mail server.



What to do?? Help please! :)



Thank you in advance and best regards,
Tom










share|improve this question













I know there are dozens of topics about storing a passwords in DB, but all of them are missing one approach: what if I want to use this password to authenticate my app to an external service?



Today I'm making a mailbox module to my app and here's where I've bumped a wall. How to store a password to the user's mailbox, so the server of my app can read it from database, make a call to mail server and get messages?



If I'll store it as plain text - it's obvious suicide.
If I'll encrypt it (hash) - it's unreversible so I can't properly sign in to mail server.



What to do?? Help please! :)



Thank you in advance and best regards,
Tom







java database email passwords






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 '18 at 16:33









T.Fruba

436




436












  • If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
    – Andreas
    Nov 19 '18 at 16:38












  • I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
    – T.Fruba
    Nov 19 '18 at 16:44












  • Then you need to encrypt, not hash, the email password.
    – Andreas
    Nov 19 '18 at 16:50










  • What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
    – T.Fruba
    Nov 19 '18 at 16:52






  • 1




    encrypt =/= hash, one is reversible, the other is not.
    – luk2302
    Nov 19 '18 at 16:53


















  • If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
    – Andreas
    Nov 19 '18 at 16:38












  • I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
    – T.Fruba
    Nov 19 '18 at 16:44












  • Then you need to encrypt, not hash, the email password.
    – Andreas
    Nov 19 '18 at 16:50










  • What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
    – T.Fruba
    Nov 19 '18 at 16:52






  • 1




    encrypt =/= hash, one is reversible, the other is not.
    – luk2302
    Nov 19 '18 at 16:53
















If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
– Andreas
Nov 19 '18 at 16:38






If you already store passwords in DB, why not store the mail password there too? --- Or did you mean "storing a passwords for connecting to DB"? If so, why not store the mail password in the same place as the DB passwords?
– Andreas
Nov 19 '18 at 16:38














I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
– T.Fruba
Nov 19 '18 at 16:44






I am storing a passwords used for app authentication. They are hashed/salted and during the log in - password is hashed/salted on client side and compared with the one stored in DB. That's ok. But... The user can also enter his/hers mail server settings so the mailbox will be read and he/she can read/reply/compose mail etc. And with the password for mailbox I have a problem.
– T.Fruba
Nov 19 '18 at 16:44














Then you need to encrypt, not hash, the email password.
– Andreas
Nov 19 '18 at 16:50




Then you need to encrypt, not hash, the email password.
– Andreas
Nov 19 '18 at 16:50












What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
– T.Fruba
Nov 19 '18 at 16:52




What I mean by the above is that a app engine is to perform periodic check if there's new mail etc. So the engine needs to call a mail server and introduce itself with username and password entered by user and stored in database. What I'm trying to do here is to avoid storing a plain-text password in database.
– T.Fruba
Nov 19 '18 at 16:52




1




1




encrypt =/= hash, one is reversible, the other is not.
– luk2302
Nov 19 '18 at 16:53




encrypt =/= hash, one is reversible, the other is not.
– luk2302
Nov 19 '18 at 16:53












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379003%2fsafe-storing-passwords-for-users-mailbox%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379003%2fsafe-storing-passwords-for-users-mailbox%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

'app-layout' is not a known element: how to share Component with different Modules

android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

WPF add header to Image with URL pettitions [duplicate]