Vâng, điều này rất phức tạp trên Android. Bạn không muốn lưu trữ mật khẩu văn bản rõ ràng trong tùy chọn, bởi vì bất kỳ ai có thiết bị đã root về cơ bản sẽ hiển thị mật khẩu của họ cho cả thế giới. Mặt khác, bạn không thể sử dụng mật khẩu được mã hóa vì bạn phải lưu trữ khóa mã hóa / giải mã của mình ở đâu đó trên thiết bị, lại dễ bị tấn công root.
Một giải pháp tôi đã sử dụng một thời gian là yêu cầu máy chủ tạo một "vé" mà nó chuyển trở lại thiết bị, điều này tốt trong một khoảng thời gian nhất định. Vé này được thiết bị sử dụng cho tất cả các giao tiếp, tất nhiên là sử dụng SSL để mọi người không thể lấy cắp vé của bạn. Bằng cách này, người dùng xác thực mật khẩu của họ trên máy chủ một lần, máy chủ sẽ gửi lại một phiếu hết hạn và mật khẩu không bao giờ được lưu trữ ở bất kỳ đâu trên thiết bị.
Một số cơ chế xác thực ba chân, như OpenID, Facebook, thậm chí là Google API, sử dụng cơ chế này. Nhược điểm là thỉnh thoảng khi vé hết hạn, người dùng cần phải đăng nhập lại.
Cuối cùng, nó phụ thuộc vào mức độ an toàn mà bạn muốn ứng dụng của mình. Nếu điều này chỉ đơn giản là để phân biệt người dùng và không có thông tin siêu bí mật nào được lưu trữ như tài khoản ngân hàng hoặc nhóm máu, thì có lẽ lưu PWD ở dạng bản rõ trên thiết bị là tốt :)
Chúc may mắn, bất kỳ phương pháp nào bạn quyết định là tốt nhất cho tình huống cụ thể của bạn!
Chỉnh sửa:Tôi nên lưu ý rằng kỹ thuật này chuyển trách nhiệm bảo mật cho máy chủ - bạn sẽ muốn sử dụng các hàm băm mặn để so sánh mật khẩu trên máy chủ, một ý tưởng bạn sẽ thấy trong một số nhận xét khác cho câu hỏi này. Điều này ngăn không cho mật khẩu văn bản rõ xuất hiện ở bất kỳ đâu ngoại trừ Chế độ xem EditText trên thiết bị, giao tiếp SSL với máy chủ và RAM của máy chủ trong khi nó muối và băm mật khẩu. Nó không bao giờ được lưu trữ trên đĩa, đó là Good Thing ™.