Đối với một dự án thú cưng, tôi phát triển một ứng dụng dành cho máy tính để bàn yêu cầu các khóa API từ một số dịch vụ web khác nhau.Cách mở nguồn ứng dụng sử dụng các khóa API
Tôi đã trải qua và chuẩn bị ứng dụng này để trở thành nguồn mở và chạy qua vấn đề phải làm gì với các khóa đó.
Vấn đề là: sự hiểu biết của tôi là các khóa API này sẽ không hiển thị cho bất kỳ ai sử dụng ứng dụng hoặc xem/sửa đổi mã nguồn. Từ cuối webservice, các khóa API này được sử dụng để xác định các ứng dụng truy cập API của chúng và cho phép/chặn sử dụng khi thích hợp. Trong hầu hết TOS để nhận các khóa này, nó thực sự được tuyên bố rõ ràng rằng các khóa không được chia sẻ với thế giới.
Hiện nay tất cả các chìa khóa của tôi được mã hóa, nhưng tại tôi đang ở một bế tắc như thế nào để xử lý tình hình các phím riêng trong một ứng dụng mã nguồn mở:
-Nếu các phím vẫn hardcoded, họ sẽ hiển thị công khai ngay khi mã nguồn của tôi.
-Tôi thực sự không thể bỏ qua tệp nguồn với các khóa từ phân phối mã, kể từ đó nó sẽ không biên dịch. Điều này giải quyết vấn đề về mặt kỹ thuật, nhưng giới thiệu một vấn đề mới, không được chấp nhận .
-Nếu tôi đẩy các phím vào tệp .ini hoặc tệp cấu hình khác và chỉ cần không bao gồm tệp đó trong kho lưu trữ mã công khai của tôi, nó vẫn phải được phân phối cùng với nhị phân của ứng dụng của tôi ứng dụng hoạt động, vì vậy các phím của tôi sẽ hiển thị trong phân phối ứng dụng thay vì phân phối nguồn. Không phải là một cải tiến. Bất kỳ thể dục dụng cụ mã hóa nào mà tôi đã cố gắng sử dụng trên tệp INI này sẽ thêm sự phức tạp cho bất kỳ ai cố gắng sửa đổi mã của tôi.
Vì vậy, liên quan đến codebase của tôi (hiện đang trong Mercurial để kiểm soát phiên bản), cách tốt nhất để quản lý mọi thứ để mã có thể là công khai, nhưng khóa của tôi vẫn ở chế độ riêng tư?
Bạn đang sử dụng ngôn ngữ lập trình nào? –
Trong trường hợp này tôi đang sử dụng C# – callingshotgun