我刚刚看过一个加密101谈话,它说如果您在代码中输入字母“ AES”,则说明您做错了!解决的办法是“仅使用GPG”。

如果您将数据存储在云上,那么所有读者和作家都需要知道密钥。如果密钥是公共私钥,那只是一个慢速密码,而不是一个比只有一个好的密码更安全的密钥?

GPG有哪些标准替代方法可以正确加密静态数据,但使用共享机密而不是公共密钥?

我使用Java,并且想使用一个库,但是想与其他平台互换。

最佳答案

解决方案在术语上是错误的-您不使用“ GPG”,而是使用OpenPGP。

实际上,对于使用共享机密(密码短语等)进行加密的OpenPGP是最佳选择,因为它同时支持多种方法并包括压缩。

另一种选择是将CMS加密与从共享机密(以某种预定方式)导出的密钥对一起使用。但是,这种方案不是标准的。

我还记得XML加密支持对称密钥加密,但是它具有某些安全缺陷。

因此,OpenPGP可能是最好的选择。

关于兼容性-符合OpenPGP的库应创建可稍后由任何其他符合OpenPGP的库或应用程序处理的数据包。不幸的是,流行的BouncyCastle库中的OpenPGP实施有时会生成不兼容的数据包-当由于创建的数据包问题而导致GnuPG或我们的SecureBlackbox无法使用BouncyCastle创建的数据包时,我们多次遇到它的问题。

09-10 07:00
查看更多