Ich bin ein Neuling, der die NaCl-Wrapper ausprobiert. Ich benutze Kalium auf meinem Server und libsodium.js auf meinem Client-Ende an jedem Ende, das sie arbeiten, aber wenn ich versuche, authentifizierte Verschlüsselung zu verwenden, um zwischen den 2 Enden zu kommunizieren, versagt der verschlüsselte Text Verifikation. Verschlüsselung auf dem Client erfolgt durch:Verwendung von Kalium auf dem Server und libsodium.js auf dem Client
var nonce=sodium.crypto_generichash(sodium.crypto_box_NONCEBYTES, dataObj.extensionId);
var message="test";
var encryptedString = sodium.crypto_box_easy(message, nonce, serverPublicKeyBytes, clientPrivateKey);
die Nonce, serverPublicKeyBytes und clientPrivateKey werden als Base64-Strings an den Server übertragen.
Im Server werden die Daten entschlüsselt:
public byte[] decrypt(byte[] publicKey, byte[] privateKey, byte[] nonce,
byte[] message) throws Exception {
Box box = new Box(publicKey, privateKey);
byte[] output= box.decrypt(nonce, message);
return output;
}
Im Server verwendet der Wrapper das java byte [], während auf dem Server die Javascript UInt8Array verwendet [], kann mir jemand in unterstützen client- ermöglichen Serverkommunikation.
Vielen Dank im Voraus