Bonjour,

Je suis certainement passé à côté de quelque chose mais je n'y arrive pas. cela fait 2 jours que je galère.
Le problème est que la fonction delphi RC4 trouvée ne fournit pas le même résultat que celle écrite et utilisée en JavaScript par mon contrôleur.
Voici une fonction JavaScript dont je souhaite faire appel au départ d'une form delphi2010 avec le passage des deux variables Key et text + la récupération du résultat ct
merci pour votre aide
Marc

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  function rc4(key, text) {
    s = new Array();
    for (var i = 0; i < 256; i++) {
        s[i] = i;
    }
    var j = 0;
    var x;
    for (i = 0; i < 256; i++) {
        j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
        x = s[i];
        s[i] = s[j];
        s[j] = x;
    }
    i = 0;
    j = 0;
    var ct = '';
    for (var y = 0; y < text.length; y++) {
        i = (i + 1) % 256;
        j = (j + s[i]) % 256;
        x = s[i];
        s[i] = s[j];
        s[j] = x;
        ct += (text.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]).toString(16).pad("0", 2).toUpperCase(); /*ct += String.fromCharCode((text.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]));*/
    }
    return ct;
}