[英]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種可能的解決方案:
將密鑰放入您的應用程序將在啟動時讀取的文件中,並將該文件從版本控制中排除。
a)將您的密鑰放入環境變量中。 這是您為雲應用程序執行此操作的方式。 (但因為你需要它作為桌面應用程序,你電腦上的每個程序都可以讀取它們)
b) 如果您只在 windows 上工作,請將其放入 windows 注冊表中。 (其他程序也可以這樣做)
使用密鑰作為參數調用您的程序。 您可以創建批處理/powershell(在 Windows 上)或 bash(在 linux 上)腳本或創建桌面快捷方式,這樣您就不必一直在終端上啟動應用程序。
(此外,您還可以加密密鑰並在啟動時要求用戶輸入密碼。因此,即使其他應用程序可以讀取您的密鑰,它們也只有加密數據。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.