首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中保存一个秘密密钥

在Python中保存一个秘密密钥
EN

Stack Overflow用户
提问于 2015-05-12 12:34:54
回答 3查看 2.3K关注 0票数 6

我知道,这些问题以前曾被单独问过几次,我发现的大多数答案都是"Python不易混淆,因为这就是语言的本质。如果您真的需要混淆,请使用另一个工具“和”在某个时候您需要权衡“(参见How do I protect Python codeHow to keep the OAuth consumer secret safe, and how to react when it's compromised?)。

不过,我刚刚开发了一个小型Python应用程序,它使用了Twitter(因此需要OAuth)。OAuth需要一个消费者秘密,这是为了远离用户。应用程序需要这些信息,但是用户不应该能够很容易地访问它。如果这些信息不能被保护(而且我使用混淆和保护作为同义词,因为我不知道任何其他方法),,OAuth API最初用于OAuth有什么意义?

接下来的问题是:

  • 是否可以在应用程序中对秘密进行硬编码,然后以一种有效的方式混淆它?
  • 如果不是,在中使用OAuth的最佳方法是什么?OAuth--我已经考虑过“传送”加密的用户秘密,并使用硬编码密钥来恢复它,但问题仍然是一样的(如何保护密钥);在服务器中拥有用户秘密,并让应用程序在启动时检索它(如果信息未加密发送,恶意攻击者只使用Wireshark从网络通信中获取消费者秘密比反编译字节码更容易,另外,我如何确保将该秘密发送给我的应用程序而不是恶意攻击者?我所知道的任何形式的身份验证都需要在应用程序端拥有秘密信息,问题仍然是一样的);两者的混合(让服务器发送加密密钥,和以前一样的问题)。基本的问题是一样的:如果关键的信息不能被隐藏,你怎么能有秘密?

我也看到一些评论说,对于那些关键部分,应该使用C/C++扩展,但我对此一无所知,所以如果这是答案,我希望得到一些额外的信息。

EN

回答 3

Stack Overflow用户

发布于 2017-08-21 07:30:26

如果您想在自己的服务器(或膝上型计算机)上部署,可以将机密存储在env var或文件中。如果您想要部署到用户,建议您或您的用户应该注册一个API密钥,生成ssl密钥或类似的。

票数 0
EN

Stack Overflow用户

发布于 2015-05-31 20:03:48

您可以使用大量的数据操作来编写您自己的简单系统加密功能,以使其更难逆转。

票数 -1
EN

Stack Overflow用户

发布于 2017-08-21 07:34:45

还不清楚为什么您需要将您的OAuth密钥与脚本。这意味着让任何人都可以访问你的Twitter账户,不管密钥本身是否在应用程序中被混淆了。

更典型的情况是,您开发了一些Twitter客户端,任何想在本地运行它的人都必须输入自己的OAuth令牌才能运行它。您只是不对令牌进行硬编码,并要求任何用户提供令牌。

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

https://stackoverflow.com/questions/30191050

复制
相关文章

相似问题

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