首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP与Node.js的libsodium实现差异

PHP与Node.js的libsodium实现差异
EN

Stack Overflow用户
提问于 2016-03-06 22:50:35
回答 1查看 614关注 0票数 2

我有一个PHP (网关)服务器。客户端是node.js服务器。它们之间交换的THe数据被加密(crypto_secretbox)和解密(crypto_secretbox_open),分别使用libsodium实现PHP。

PHP中的加密数据在开始时没有16字节的零(salt),因为node.js中的加密数据有16字节零。

要对用PHP加密的数据的节点进行解密,在调用secretBox.decrypt之前,我必须先加16字节的零(salt)。

要在PHP上解密节点中加密的数据,在调用\Sodium\crypto_secretbox_open之前,我必须先删除16字节的零。

问题是:这是最好的办法吗?还是我遗漏了一些很明显的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-10 08:29:51

您实际使用的是secretbox_easy和Node- and,而不是secretbox

secretbox需要额外的字节来进行预处理/剥离。它只提供向后兼容性,除了在C中使用它没有任何意义,但出于某种原因,Node-‘t提供了它。

PHP绑定不需要这些额外的字节。与大多数其他绑定一样,secretbox实际上是幕后的secretbox_easy

好消息是Node- is也提供secretbox_easy.您只需要显式地将它命名为secretbox_easy。不再需要填充物。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35833616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档