Dường như mọi ứng dụng tôi tạo cần có thể gửi email không thường xuyên. Ví dụ. email trạng thái. Đối với câu hỏi này, giả sử ứng dụng của tôi là một công cụ sao lưu, được cài đặt cục bộ trên nhiều máy khách, và mỗi lần cài đặt cần gửi thư trạng thái hàng ngày. Nó có thể được cài đặt trên máy chủ của tổ chức hoặc trên máy tính cá nhân.Ứng dụng của tôi cần gửi email, tôi nên lưu trữ mật khẩu SMTP ở đâu và như thế nào?
Tôi yêu cầu người dùng cung cấp thông tin xác thực cho tài khoản email mà anh sở hữu (máy chủ STMP, cổng, tên người dùng, mật khẩu, địa chỉ). Tôi đã sao chép phương pháp này từ các ứng dụng như Atlassian Jira/Confluence hoặc JFrog Artifactory. Họ đang lưu trữ mật khẩu SMTP ở đâu và như thế nào?
Sự hiểu biết hiện tại của tôi là: Phương pháp tiếp cận dừng/dừng không áp dụng ở đây vì tôi cần có thể truy xuất mật khẩu thô để thực sự gửi email. Tôi không muốn lưu trữ mật khẩu trong bản rõ, vì vậy nó phải là một loại phương pháp mã hóa/giải mã (phải không?).
Tôi có thể yêu cầu người dùng không sử dụng tài khoản email chính của mình, nhưng để sử dụng một số tài khoản phụ hoặc thậm chí tốt hơn, hãy thiết lập một tài khoản email đặc biệt để ứng dụng của tôi sử dụng. Nếu người dùng là quản trị viên của tổ chức, anh ấy có thể thiết lập tài khoản email trên máy chủ trao đổi của mình hoặc định cấu hình chuyển tiếp SMTP. Tuy nhiên, tôi biết tôi và tôi biết người dùng cá nhân của mình, một số người trong số họ sẽ chỉ sử dụng tài khoản email chính của họ, vì vậy tôi muốn làm mọi thứ có thể để giữ thông tin của họ an toàn nhất có thể (theo ý tôi là ").
Ưu tiên tôi muốn lưu trữ mật khẩu được mã hóa trong cơ sở dữ liệu của ứng dụng.
Tôi đã dành hàng giờ đọc qua các câu hỏi về lưu lượng truy cập, nhưng tôi không thể thấy sự đồng thuận (giống như thông tin đăng nhập tài khoản người dùng). Tôi thấy điều này đáng ngạc nhiên, như tôi mong đợi về cơ bản mọi nhà phát triển phải đối mặt với vấn đề này sớm hay muộn.
Phải có một số phương pháp hay nhất để làm theo, một số cách được thiết lập để giải quyết vấn đề này, nhưng tôi chưa tìm thấy.
Hãy chỉ cho tôi các tài nguyên trên SO/web giải thích cách giải quyết vấn đề này. Nếu có thể được viết bởi một số chuyên gia trong lĩnh vực này.
Một số câu hỏi SO Tôi đã xem xét: