有没有办法在笔记本中存储机密/访问秘密/密码?我有一个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