Die Verschlüsselung erfolgt mit Stanford Javascript Crypto Library (SJCL). Im Folgenden finden Sie ein vollständiges Verschlüsselungsbeispiel, das in zwei Teile unterteilt ist. Die erste ist die passwortbasierte Schlüsselableitung mit PBKDF2 . Im zweiten Teil erfolgt die eigentliche Verschlüsselung mit dem abgeleiteten Schlüssel und einem Initialisierungsvektor (IV). Beachten Sie, dass Salt und IV fest codiert sind, so dass es einfacher ist, eine C # -Dechiffrierungslösung bereitzustellen.
%Vor% Der Wert der encryptionKey
-Variable:
[ -74545279, -553931361, -1590906567, 1562838103 ]
fb8e8781defbad9fa12cb1395d270457
+46Hgd77rZ+hLLE5XScEVw==
Der Wert der iv
-Variable:
[ -2104361200, 2121894441 ]
8291ff107e798a29
gpH/EH55iik=
Der Wert der cipherText
-Variable:
[ 1789401157, -1485204800, -440319203, 17593459146752 ]
6aa81845a77992c0e5c1431d4be2
aqgYRad5ksDlwUMdS+I=
Die Frage ist:
Wie kann ich den verschlüsselten Text mit Bouncy Castle entschlüsseln?
Ich bekomme ein System.ArgumentException
. Ich denke, es beschweren sich darüber, dass eines der Byte-Arrays zu kurz ist.
Boncy Castle ist auf der NuGet-Website an folgendem Ort verfügbar: Ссылка .
Die AES / CCM-Entschlüsselungslösung ist Teil des SjclHelpers -Projekts unter CodePlex und wird als NuGet-Paket veröffentlicht.
Von was ich sehen kann:
AeadParameters
anstelle von CcmParameters
, aber das ist vielleicht immer noch in Ordnung, aber wickeln Sie es nicht mit ParametersWithIV associateText
ist optional, da CCM unverschlüsselte Daten authentifizieren kann, die sich auf Ihre verschlüsselten Daten beziehen, wenn Sie sie benötigen. Sie benötigen wahrscheinlich ein Argument, da es dasselbe wie sjcl adata
sein muss, und die Transportmethode kann alles Mögliche sein. tag
und macSize
gleich sind. ccmMode.DoFinal(plainBytes, res);
sein
macSize / 8
) Bytes des cipherText mit ccmMode.GetMac()
vergleichen, um die Authentifizierung zu überprüfen. var plainBytes = new byte[ccmMode.GetOutputSize(cipherText.Length)]
Sie können sjcl JSON nicht mit Bouncy Castle entschlüsseln. Weil der vorberechnete Tisch von SJCL sich von dem von Bouncy Castle unterscheidet. Ich habe eine eigene Bibliothek gemacht. Wenn Sie noch nach einer Entschlüsselungslösung suchen, versuchen Sie es. Ссылка
Tags und Links c# encryption bouncycastle aes