首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中保护API密钥

在Python中保护API密钥
EN

Stack Overflow用户
提问于 2016-06-09 11:23:33
回答 3查看 5K关注 0票数 3

我正在编写一个Python程序,它使用API键从外部服务访问数据。该程序使用我的Python脚本中硬编码的键调用此服务。是否有某种方法来保护该密钥(不是不可逆转的,而是防止人们直接从脚本复制密钥的方法)?程序应该从我的服务器请求密钥吗?也许是C图书馆?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-09 11:36:10

如果您想保护自己不受“黑客”的攻击,这是不可能的,因为如果python脚本可以访问您的API,那么这个脚本可以被修改为使用它所拥有的访问权限来做一些讨厌的事情。你必须在那里找到另一个解决方案。

如果你想保护自己不受“冲浪者”(当你经过时看着显示器的人)的影响,那么base64.b64encode("key")base64.b64decode("a2V5==")就足够了。

票数 2
EN

Stack Overflow用户

发布于 2016-06-09 11:31:16

程序应该从我的服务器请求密钥吗?

即使这样,一个很有动力的人(或者是熟练的,或者两者都是)用户可以通过嗅探诸如Wireshark之类的工具(如果您没有使用https),甚至通过在某个地方添加一个print来修改您的脚本。

票数 2
EN

Stack Overflow用户

发布于 2016-06-09 11:40:52

不知道代码的体系结构,也许可以使用以下体系结构:

一种-> B -> C

A是你的客户代码,A向B提交请求

B是在您的专用服务器上的代理代码,并且已经在B代码中编码了您的api_key,B代码将使用api_key将您的A请求传输到C。

C是外部服务

然后,客户端代码将永远不会记录api密钥,api密钥将在您的私有服务器上,这类似于代理设计模式。

当然,如果您不希望这么复杂,您可以使用Py2exe将您的python代码打包为exe,这是另一个选项,FYI。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37724590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档