簡體   English   中英

如何在開源項目的 Visual Studio/C# 代碼中不存儲 API 密鑰

[英]How to not store API key in visual studio/c# code in an open source project

我正在使用帶有 .NET Core 3 WPF 應用程序的 Microsoft 應用程序中心。 我不想將我的應用中心密鑰直接存儲在源代碼中,因為我的軟件是開源的。 我正在使用 Visual Studio,我已經搜索了不直接將我的 API 密鑰存儲在源代碼中的方法。 我知道您不應該將它們存儲在那里,但是在構建時間方面,我需要將 API 鍵作為字符串訪問代碼,以便可以將其傳遞給方法調用。

我並不非常擔心有人通過反匯編程序運行我的應用程序,但我想阻止那些可能想四處閑逛的人。 在 Visual Studio/c# 中,我似乎找不到任何方法來做這樣的事情。 就像 #ReadFromFile(filepath) 指令或可以讀取文件內容並在編譯時將其替換到文檔中的東西。

有誰知道做這樣的事情的方法? 我已經看到很多關於“你不應該怎么做”的答案,但我真的沒有資源去做他們中的很多人所做的事情。 我只有一個相當簡單的應用程序,它是開源的並使用 API 密鑰。

我認為有3種可能的解決方案:

  1. 將密鑰放入您的應用程序將在啟動時讀取的文件中,並將該文件從版本控制中排除。

  2. a)將您的密鑰放入環境變量中。 這是您為雲應用程序執行此操作的方式。 (但因為你需要它作為桌面應用程序,你電腦上的每個程序都可以讀取它們)

    b) 如果您只在 windows 上工作,請將其放入 windows 注冊表中。 (其他程序也可以這樣做)

  3. 使用密鑰作為參數調用您的程序。 您可以創建批處理/powershell(在 Windows 上)或 bash(在 linux 上)腳本或創建桌面快捷方式,這樣您就不必一直在終端上啟動應用程序。

(此外,您還可以加密密鑰並在啟動時要求用戶輸入密碼。因此,即使其他應用程序可以讀取您的密鑰,它們也只有加密數據。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM