Tôi đang phát triển một ứng dụng đọc một số dữ liệu từ một db. Kết nối với db được thực hiện thông qua cơ chế đăng nhập/mật khẩu chuẩn.Java - Cách lưu trữ mật khẩu được sử dụng trong ứng dụng?
Vấn đề là: cách lưu trữ mật khẩu db? Nếu tôi lưu trữ nó như là một thành viên lớp, nó có thể dễ dàng lấy ra thông qua một hoạt động dịch ngược.
Tôi nghĩ rằng obfuscation không giải quyết được vấn đề, vì một mật khẩu chuỗi có thể được tìm thấy dễ dàng cũng trong mã obfuscated.
Mọi người đều có đề xuất?
Đây có phải là cơ sở dữ liệu của bạn hay cơ sở dữ liệu của khách hàng. Nếu đó là cơ sở dữ liệu của khách hàng, anh ta nên biết mật khẩu của nó. Nếu đó là cơ sở dữ liệu của bạn, nó nằm ở đâu? Tại sao một ứng dụng khách hàng sẽ trực tiếp truy cập cơ sở dữ liệu, mà không phải thông qua một số máy chủ lưu trữ mật khẩu, và nơi mã byte không có sẵn cho các máy khách? –
Tôi thường lưu trữ mã hóa cứng trong ứng dụng dưới dạng Chuỗi được mã hóa bằng Rot13. (đùa). –
Nếu bạn đang sử dụng Java EE, có một số cơ chế tiêu chuẩn để giải quyết vấn đề này ... nhưng tôi đoán bạn thì không. Tôi không nghĩ rằng nó giúp bảo mật để ẩn mật khẩu nếu ứng dụng của bạn cho phép truy cập đầy đủ vào db. – toto2