我知道这些问题已经单独提出几次,我发现的大多数答案是“Python不容易混淆,因为这是语言的本质。如果您确实需要模糊处理,请使用其他工具“和”在某些时候您需要权衡“(请参阅How do I protect Python code和How to keep the OAuth consumer secret safe, and how to react when it's compromised?)。保持秘密密钥在Python中安全
但是,我刚刚制作了一个使用Twitter的API(因此需要OAuth)的小型Python应用程序。 OAuth需要消费者密码,该密码远离用户。该应用程序需要这些信息,但用户不应该能够轻松访问它。如果这些信息不能被保护(并且我使用混淆和保护作为同义词,因为我不知道其他方式),首先为Python创建OAuth API有什么意义?然后
的问题(S)是:
- 是否可以硬编码在应用程序中的秘密,然后 混淆它以有效的方式?
- 如果不是,那么在Python中使用OAuth的最佳方式是什么?我曾经想过将应用程序的加密密码与应用程序一起“传送”出来,并使用硬编码密钥来恢复它,但问题仍然存在(如何保护密钥);让消费者在服务器中保密,并让应用程序在启动时检索它(如果信息未加密发送,则恶意攻击者使用Wireshark并从网络流量获取用户密码比反编译字节码更容易,以及我如何确保我将该秘密发送给我的应用程序而不是恶意攻击者?我知道任何形式的身份验证都需要在应用程序端有秘密信息,问题依然存在);两者混合(让服务器发送加密密钥,与以前相同的问题)。基本问题是一样的:如果不能隐藏重要信息,你怎么能有一些秘密?
我也见过评论说应该对这些关键部分使用C/C++扩展,但我对此一无所知,所以如果这是答案,我会很感激一些额外的信息。
谁是这个问题中的“用户”,你的客户? (您建议将应用程序与一个密钥一起“运送”,但我不确定您的意思是否是字面意思。) –
用户只是我自己,这不是一个严肃的项目。我想知道如何使用OAuth实际发布(例如,使其在他们的网站中可用)的Python应用程序实现它。 – user2891462
这是关于讨论的问题[这里](http://blog.codinghorror.com/keeping-private-keys-private/)? – TigerhawkT3