Contexte:Comment puis-je porter une bibliothèque AES Javascript sur .NET pour assurer l'interopérabilité?
J'ai données que je chiffrant avec javascript côté client qui doit être déchiffré sur le côté serveur. Pour autant que je sache, la bibliothèque AES javascript que j'utilise n'interface pas avec la bibliothèque C# Rijndael.
Ainsi, il me reste essentiellement à implémenter le javascript AES en C# pour l'utiliser.
Je vais essayer de compiler le javascript en utilisant jsc.exe dans une DLL et voir si le réflecteur peut me faire gagner du temps. Je suis conscient que jscript n'est pas la même chose que javascript, mais j'espère pouvoir m'en tirer avec quelque chose qui fonctionne avec frénésie, et faire les retouches manuellement.
Problème:
Lorsque je compile le javascript en utilisant JSC je reçois l'erreur suivante:
error JS1234: Only type and package definitions are allowed inside a library
La ligne incriminée est cette première ligne dans les lignes de code suivantes:
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');
}
},
Et la source complète peut être found here:
Je ne sais pas quel est le problème. Je suis également ouvert aux suggestions sur la façon de crypter/décrypter les données entre Javascript et C#.
Je n'ai pas de réponse, mais je suis juste curieux de savoir pourquoi vous ne pouvez pas simplement utiliser HTTPS pour gérer le cryptage entre client et serveur? – Alconja
Il est difficile de dire quel est le problème, car la ligne que vous avez fournie n'a pas beaucoup de sens et n'est pas une déclaration complète. Est-il possible pour vous d'ajouter plus de lignes de code? – kanngard
@Alconja: Malheureusement, je n'ai aucun contrôle sur l'utilisation de SSL entre le client et le serveur. Certains clients vont installer SSL, tandis que d'autres ne le feront pas. Toutes les données sensibles doivent donc être cryptées côté client pour être transmises. @kanngard: Ok, j'ai mis à jour, plus ajouté un lien vers le fichier js complet. Merci! – Alan