我有一個PHP REST(網關)服務器。客戶端是一個node.js服務器。他們之間交換的數據被加密(crypto_secretbox)&解密(crypto_secretbox_open)分別使用libsodium easy api實現的PHP &節點。PHP與Node.js之間的libsodium實現差異
PHP中的加密數據在開始時沒有16字節的零(salt),因爲node.js中的加密數據具有16字節的零。
爲了解密PHP中加密的數據節點,我必須在調用secretBox.decrypt之前預先加入16個字節的零(salt)。
要在PHP中解密節點中加密的數據,我必須在調用\ Sodium \ crypto_secretbox_open之前先刪除16個字節的零。
問題:這是最好的方法還是我錯過了一些非常明顯的東西?
它不清楚你的問題是什麼。您已經清楚地找到了兩種實現方案差異的解決方案? – shrmn
嗨。我做了,但我覺得這是一個黑客。我希望有人會告訴我「這就是你怎麼做的,你破解!」 :) – indiangolfer