我可以在Java中实现端到端加密吗?

 手机用户2502918695 发布于 2022-12-28 15:38

我正在创建一个Web服务,用于存储用户在线公钥以及加密消息的列表.我的最终目标是端到端加密.

我最初认为这很容易 - "哦,OpenSSL和RSA私钥/公钥非对称加密很棒." 假.RSA只会加密一小部分数据,大概是来回传递一个常规的对称密钥.

好的,所以我试着在网上找到解决方案.其中大多数任结束,没有一个有效的实施例或在使用命令行指出,所有这些似乎过度和不完整的.

是否有办法使用终端到端到端的数据加密与非对称密钥的方式,或者是这一切是个人白日梦?PHP中的 OpenSSL已经有了一种方法可以做到这一点,而且它很麻烦,但它确实有效.

我在这里找不到一些方法吗?

1 个回答
  • 使用非对称密钥(例如RSA)加密大量数据的常用方法是使用混合加密.在混合加密中,您可以混合使用对称和非对称加密.首先,您生成了一个随机对称密钥,用于加密数据.然后使用非对称密钥加密对称密钥.然后将加密数据+加密随机密钥放在一起并构成完整的加密数据.

    openssl_seal()PHP中你参考,使用混合加密,其中对称算法RC4是.openssl实现已经定义了如何将数据编码并放在加密文件中,并且可能不一定是您想要的方式.作为混合加密的另一个例子,PGP使用它自己的打包数据的方式.

    在任何情况下,混合加密都不是你在Java中开箱即用的东西,你通常需要自己实现每个加密+打包步骤,或者使用其中一个实现此版本的库.这样做的一个例子就是我发现的这个Java代码可以解密用上面提到的加密的消息openssl_seal().

    使用库进行混合加密的一个示例可能是使用Bouncy Castle中的PGP支持 .

    2022-12-28 15:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有