Hintergrund:Wie kann ich eine JavaScript AES-Bibliothek nach .NET portieren, um die Interoperabilität zu gewährleisten?
ich Daten, die ich auf der Client-Seite mit Javascript verschlüsselt, die auf der Serverseite entschlüsselt werden muss.
Soweit ich das beurteilen kann, ist die Javascript-AES-Bibliothek Ich bin mit Bibliothek nicht Interop mit der C# Rijndael.
Also, ich bin im Wesentlichen das Javascript AES in C# für den Einsatz zu implementieren.
Ich werde versuchen, das mit Hilfe von Javascript jsc.exe in eine DLL zu kompilieren und sehen, ob Reflektor mir etwas Zeit sparen kann.
Ich bin mir bewusst, dass jscript nicht das gleiche wie Javascript ist, aber ich hoffe, dass ich mit etwas davonkommen kann, das awefully funktioniert, und nur die Touchups manuell tun.
Problem:
Wenn ich kompilieren JavaScript mit JSC ich die folgende Fehlermeldung erhalten:
error JS1234: Only type and package definitions are allowed inside a library
Die Codezeile ist diese erste Zeile in den folgenden Codezeilen:
var GibberishAES = (function(){
var Nr = 14,
/* Default to 256 Bit Encryption */
Nk = 8,
Decrypt = false,
enc_utf8 = function(s)
{
try {
return unescape(encodeURIComponent(s));
}
catch(e) {
throw 'Error on UTF-8 encode';
}
},
dec_utf8 = function(s)
{
try {
return decodeURIComponent(escape(s));
}
catch(e) {
throw ('Bad Key');
}
},
und die volle Quelle found here sein kann:
Ich bin mir nicht sicher, was das Problem ist. Ich bin auch offen für Vorschläge, wie Sie Daten zwischen Javascript und C# verschlüsseln/entschlüsseln können.
Ich habe keine Antwort, aber ich bin nur neugierig, warum Sie nicht nur HTTPS verwenden können, um mit der Verschlüsselung zwischen Client und Server umzugehen? – Alconja
Es ist schwer zu sagen, was das Problem ist, da die von Ihnen angegebene Zeile nicht viel Sinn ergibt und keine vollständige Aussage ist. Ist es möglich, dass Sie weitere Codezeilen hinzufügen? – kanngard
@Alconja: Leider habe ich * keine * Kontrolle über die Verwendung von SSL zwischen dem Client und dem Server. Einige Clients richten SSL ein, andere nicht. Daher müssen alle sensiblen Daten auf der Client-Seite zur Übertragung verschlüsselt werden. @kanngard: Okay, ich habe aktualisiert und einen Link zur vollständigen js-Datei hinzugefügt. Danke! – Alan