Tôi phải mở đầu câu hỏi này bằng cách nói rằng tôi biết rằng mã hóa cứng một mật khẩu trong ứng dụng của khách hàng là thực hành không tốt, vì nhiều lý do. Có những câu hỏi khác liên quan đến vấn đề đó. Phạm vi của câu hỏi này là hẹp hơn và giả định rằng chứng thực xác thực CÓ phải nằm trên mã của ứng dụng khách cho một số lý do nằm ngoài tầm kiểm soát của bạn.Cách an toàn nhất để nhúng mật khẩu bên trong mã Java là gì?
Nếu một số cách tốt hơn so với các cách khác (ví dụ: JPasswordField lưu trữ mật khẩu trong mảng char thay vì chuỗi) và nếu bạn phải mã hóa nó trong ứng dụng Java, bạn có thể thực hiện các biện pháp nào để làm cho khó hơn để được tìm nạp?
Cập nhật:
Một ví dụ của ứng dụng chạy trên máy tính từ xa, nơi người dùng cuối có quyền quản trị. Thông tin đăng nhập được sử dụng để truy cập cơ sở dữ liệu trong cùng một mạng, vì vậy mật khẩu thực tế đã được xác định trước và phải được nhập thủ công trong mã thực tế.
Bạn có nghĩ đến việc băm mật khẩu không? Có lẽ điều này sẽ làm việc cho trường hợp sử dụng của bạn? – Robin
Bạn có thể vui lòng giải thích cách ứng dụng khách của bạn hoạt động không? Có bao nhiêu trường hợp nó chạy? Ai kiểm soát vòng đời của nó? Mật khẩu được sử dụng để làm gì? –
Bạn có cần phải gửi mật khẩu ở một nơi khác, vì vậy bạn thực sự cần mật khẩu thực tế? Hoặc bạn có nhận được mật khẩu từ đâu đó (như người dùng) và chỉ cần kiểm tra xem nó có đúng không (và có thể sử dụng hàm băm cho điều đó) không? – hyde