有沒有辦法在筆記本中存儲機密/訪問祕密/密碼?我有一個api端點,我從中提取數據,我不想將apiKey公開給可以查看筆記本的所有人。在Jupyter筆記本中存儲密碼
回答
將您的憑證存儲在JSON或YAML中,讓筆記本解析必要的部分。
import json
with open('credentials.json') as f:
data = json.load(f)
username = data['username']
password = data['password']
您應該避免在單元輸出中打印祕密,否則任何您選擇的技術都將被挫敗。
嗯......這個有效的隱藏它從平淡的看法,但問題是,訪問筆記本的人仍然可以獲得祕密。我猜沒有辦法阻止訪問筆記本的人訪問祕密...... – sargeMonkey
有什麼辦法可以阻止訪問筆記本的人訪問祕密? – sargeMonkey
不是我能想到的。如果腳本(筆記本)可以訪問祕密進行身份驗證,則筆記本用戶可以使用相同的方法查看祕密。 – cco
cco's answer is good,但如果你正在尋找一個更簡單的解決方案,許多人使用環境變量來保持祕密與源代碼隔離。
例如,你可以在shell執行你的腳本時,爲他們提供:
$ API_TOKEN=abc123 python script.py
在你的源代碼:
import os
API_TOKEN = os.environ.get("API_TOKEN")
爲了您Jupyter筆記本電腦,您可以使用python-dotenv
或類似的包來「檢索」一個.env
文件,該文件包含項目的祕密並且被版本控制系統忽略。
一旦你創建了.env
文件(手動或使用the package's command line tool),你可以像這樣在Jupyter(或IPython中)使用python-dotenv
:
%load_ext dotenv
%dotenv
import os
os.environ.get("API_TOKEN")
有什麼辦法可以阻止訪問筆記本的人訪問這個祕密? – sargeMonkey
@sargeMonkey祕密將在命令行或'.env'文件中提供。如果它在'.env文件中,你根本不會把這個文件給其他人。 –
是的,但具有筆記本訪問權限的人可以通過簡單地執行os.environ.get(「API_TOKEN」)來訪問密鑰,對吧? – sargeMonkey
- 1. Jupyter筆記本 - Python代碼
- 2. 在Jupyter筆記本
- 3. 避免將對象存儲在Jupyter筆記本緩存中
- 4. 在IPython中/ Jupyter筆記本
- 5. 閱讀圖像中Jupyter筆記本Jupyter筆記本
- 6. Ipyton筆記本/ jupyter
- 7. ipywidgets jupyter筆記本
- 8. __file__不存在於Jupyter筆記本
- 9. 不能在Jupyter筆記本
- 10. FileNotFoundError而在Jupyter筆記本
- 11. 不能在Jupyter筆記本
- 12. d3.js在Jupyter筆記本
- 13. Jupyter筆記本電腦顯示代碼
- 14. Jupyter筆記本服務器密碼無效
- 15. jupyter: '筆記本' 不是Jupyter命令
- 16. Pygal在Jupyter筆記本中呈現SVG
- 17. 在jupyter筆記本中摺疊單元
- 18. Graphviz.Source不在Jupyter筆記本中顯示
- 19. 在窗口中安裝jupyter筆記本
- 20. 在Jupyter筆記本中創建矩陣
- 21. LS在Jupyter筆記本(Python 3中)
- 22. Jupyter筆記本不信任
- 23. 推出Jupyter筆記本「
- 24. jupyter筆記本的Mac
- 25. Jupyter筆記本和anaconda
- 26. 開始jupyter筆記本10
- 27. Jupyter筆記本錯誤
- 28. 運行Jupyter筆記本
- 29. 在Jupyter筆記本筆記本,分配降價或標題類型我想配置我Jupyter筆記本電池
- 30. 在anaconda ipython筆記本命令打開jupyter筆記本?
你真的需要封裝的API訪問您的自己的安全服務。 –
感謝Kenny ......我最終這樣做了......創建了一個exe文件來讀取機器商店中的祕密,執行特權命令並返回輸出 - 我把這個exe文件從筆記本電腦 – sargeMonkey