如何安全地存储敏感数据?

3

我目前正在编写一个程序,使用私人apikey向服务器发送数据。我不想以明文形式保存密钥,但需要它来联系服务器。

什么样的可逆加密适合这种情况?


1
chmod 600 apiKeyFile? - le3th4x0rbot
我认为API密钥的重点在于它不是密码,因此如果丢失或被盗,损失非常小。 - Nick T
为什么你不想以明文形式保存密钥? - Lasse V. Karlsen
2个回答

3
似乎如果你给别人程序并且它需要使用API密钥,就没有办法避免提供API密钥。你能做的最好的事情就是将其混淆得足够复杂,以至于某些人会认为在其他地方获取API密钥更容易。假设API密钥在其他地方非常难获取,以至于某些人坚持试图从你的程序中解码它,他们最终将会得到它。
请注意,最终用户将能够窥视与服务器的通信,甚至在SSL连接上进行中间人攻击,而您几乎肯定会以明文发送密钥。
应用一些麻烦的加密算法,例如rot13,并忘记它。

2

pycrypto 拥有许多工具来实现这个功能。该模块包含了许多标准的加密类型。

这里 有一个快速教程。


6
SHA-2不是加密算法,而是哈希算法,因此是不可逆的。加密不一定能够提供保护:如果你在某个文件中只是简单地写下了"ENCRYPTED_API_KEY = ...; AES_KEY = ...; AES_OPTIONS = ...",那么任何人只要将其输入到AES实现中就可以轻易地获取原始明文。 - user395760

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接