我有一个 PHP REST(网关)服务器。客户端是一个 node.js 服务器。它们之间交换的数据分别使用 PHP 和 Node 的 libsodium easy api 实现加密(crypto_secretbox)和解密(crypto_secretbox_open)。
PHP 中的加密数据在开头(盐)没有 16 个字节的零,而 node.js 中的加密数据有 16 个字节的零。
要在 PHP 中加密的数据节点上解密,我必须在调用 secretBox.decrypt 之前添加 16 个字节的零(盐)。
要在 PHP 上解密节点中加密的数据,我必须先删除 16 个字节的零,然后再调用 \Sodium\crypto_secretbox_open。
问题:这是最好的方法还是我遗漏了一些非常明显的东西?