我有一个程序可以定期将敏感数据的小块(比方说8个字节)附加到多个日志文件中。我希望这些数据能够加密。我希望程序在启动时自动启动,所以我不想在程序启动时输入密码。我也不希望它在某个地方存储密码,因为这几乎会破坏加密的目的。
由于这些原因,在我看来,公钥加密将是一个不错的选择。该程序知道我的公钥,但我的私钥在其他地方受密码保护。
到目前为止,这么好。但是当我尝试使用PyCrypto到RSA(或ElGamal) - 加密一个小的5字节字符串时,输出会爆炸到128字节。我的日志文件足够大......另一方面,当我尝试像Blowfish这样的对称加密时,输出字符串和输入字符串一样大。
所以,我的问题是:是否有一个相当安全的公钥加密算法,我可以一次加密8个字节的数据并且不会爆炸? (我想因为2可以)。我想我想要的是一个公钥流密码。
如果没有这样的东西,我想我会放弃并使用对称加密并在启动时手动提供密码。
答案 0 :(得分:4)
通常,这可以通过程序创建一些(实际)随机数的方式来解决,这些随机数用作对称加密算法的密钥。
在你的程序中,你必须做类似的事情:
要解密,
您可能希望为“好”键获取一些随机数据(例如> = 256位)。
答案 1 :(得分:0)
您需要做的事情就像SSL那样:使用公钥加密交换密钥,然后使用对称加密。非对称加密在性能方面效率非常低,不应该用于此类内容。