Tôi đã làm việc trên một dự án Java một thời gian, và trước khi tôi làm cho nó có sẵn để tải xuống công khai, tôi muốn thêm vào một tính năng yêu cầu tôi kết nối với cơ sở dữ liệu MySQL. Câu hỏi của tôi là đơn giản: Làm thế nào tôi sẽ đi về ẩn mật khẩu để cơ sở dữ liệu nếu mã là mã nguồn mở?Ẩn chuỗi trong mã nguồn mở?
Trả lời
Lưu trữ cài đặt kết nối cơ sở dữ liệu riêng biệt với mã của bạn.
Làm thế nào chính xác tôi sẽ lưu trữ nó trong một định dạng mà sẽ là không thể đọc được mặc dù? – caseif
Tách cấu hình ứng dụng của bạn khỏi mã. Khi người dùng triển khai tệp, hãy cung cấp cho họ cấu hình. Bạn không cần phải kéo bất kỳ shenanigans obfuscans theo cách đó. –
Như trong, có người dùng nhập tệp riêng? Nếu có thể, tôi muốn giữ toàn bộ nội dung trong một tập tin. – caseif
Bạn có thể đặt mật khẩu theo một số loại configuration file
như tệp ini
. Trong giai đoạn cài đặt/cài đặt, hãy lấy mật khẩu từ người dùng và điền mật khẩu vào tệp cấu hình theo mã hoặc cho phép họ thực hiện theo cách thủ công.
Tôi không thực hiện theo ... Tôi cho rằng tôi nên đề cập rằng mã của tôi là một JAR độc lập. – caseif
Theo như tôi biết, không có câu trả lời đúng. Bạn có thể cố gắng thực sự khó khăn để che giấu hoặc ẩn nó, nhưng nếu mật khẩu hoặc một phương pháp tính toán nó là trong JAR của bạn, một người dùng lâu bền và có tay nghề cao sẽ tìm thấy nó.
Có một câu trả lời tốt hơn nhiều so với tôi có thể cung cấp cho đây: How can I protect MySQL username and password from decompiling?
Tôi hơi bối rối. Nếu tôi sử dụng mã số 'preferences.put (" db_username ", tên người dùng); preferences.put ("db_password", mật khẩu); ', các thông tin đăng nhập sẽ không được mã hóa cứng vào nhị phân không? – caseif
- 1. Có nguồn mở mã nguồn mở không?
- 2. Mã nguồn mở OCR
- 3. Mã nguồn mở Meme Tracker
- 4. Mã nguồn mở ASP.NET CMS
- 5. Công cụ âm thanh mã nguồn mở
- 6. Mã nguồn mở JAVA OCR trên eclipse
- 7. Mã nguồn mở Linux Acrobat Javascript Editor
- 8. Mã nguồn mở Telnet Java API
- 9. Công cụ dịch mã nguồn mở?
- 10. Thông dịch viên PostScript mã nguồn mở
- 11. mã nguồn mở của Ruby Dự án
- 12. phân lớp thư viện mã nguồn mở
- 13. Mã nguồn ứng dụng bản vẽ nguồn mở iOS
- 14. Lặn sâu vào mã nguồn mở
- 15. Khuôn khổ ETL mã nguồn mở
- 16. C# mã nguồn mở NMEA parser
- 17. Delphi - dự án mã nguồn mở
- 18. GitHub cho Windows - là mã nguồn mở?
- 19. Triển khai giống như mã nguồn mở?
- 20. Ở đâu trong nguồn PHP là mã để tăng chuỗi?
- 21. Mã nguồn mở để đọc PDF trong Android
- 22. Thư viện nhận dạng video mã nguồn mở trong C#
- 23. Nhập mã vạch video kỹ thuật số mã nguồn mở
- 24. Nhận mã nguồn HTML dưới dạng chuỗi
- 25. tham khảo chuỗi nguồn từ mã
- 26. Phân chia dự án mã nguồn mở Apache và dự án mã nguồn mở v2 và thông báo bản quyền
- 27. Bắt nguồn - ví dụ mã hoặc dự án mã nguồn mở?
- 28. Tìm tất cả các chuỗi mã nguồn được mã hóa
- 29. Vị trí của lớp chuỗi python trong mã nguồn
- 30. Những đóng góp và đóng góp vô danh trong các dự án mã nguồn mở
Bạn muốn người dùng của mã của bạn để kết nối trực tiếp đến máy chủ cơ sở dữ liệu của bạn và không phải là một ví dụ MySQL họ thiết lập bản thân? Bạn có thể cung cấp bất kỳ chi tiết nào về loại tính năng này không? Một giải pháp thay thế có thể là để thúc đẩy một dịch vụ web an toàn mà người tiêu dùng có thể kết nối và được kiểm soát thông qua mà không làm cho máy chủ cơ sở dữ liệu của bạn công khai với bất kỳ ai? – Charlie