Maison interface Web js tutoriel JavaScript implémente l'ensemble du processus de décryptage et de chiffrement_javascript skills

JavaScript implémente l'ensemble du processus de décryptage et de chiffrement_javascript skills

May 16, 2016 pm 04:53 PM
des

Copier le code Le code est le suivant :

//Paul Tero, July 2001
//http://www.tero.co.uk/des/
//
//Optimised for performance with large blocks by Michael Hayworth, November 2001
//http://www.netdealing.com
//
//THIS SOFTWARE IS PROVIDED "AS IS" AND
//ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
//ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
//OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
//HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
//OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
//SUCH DAMAGE.

//des
//this takes the key, the message, and whether to encrypt or decrypt
function des (key, message, encrypt, mode, iv, padding) {
//declaring this locally speeds things up a bit
var spfunction1 = new Array (0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004);
var spfunction2 = new Array (-0x7fef7fe0,-0x7fff8000,0x8000,0x108020,0x100000,0x20,-0x7fefffe0,-0x7fff7fe0,-0x7fffffe0,-0x7fef7fe0,-0x7fef8000,-0x80000000,-0x7fff8000,0x100000,0x20,-0x7fefffe0,0x108000,0x100020,-0x7fff7fe0,0,-0x80000000,0x8000,0x108020,-0x7ff00000,0x100020,-0x7fffffe0,0,0x108000,0x8020,-0x7fef8000,-0x7ff00000,0x8020,0,0x108020,-0x7fefffe0,0x100000,-0x7fff7fe0,-0x7ff00000,-0x7fef8000,0x8000,-0x7ff00000,-0x7fff8000,0x20,-0x7fef7fe0,0x108020,0x20,0x8000,-0x80000000,0x8020,-0x7fef8000,0x100000,-0x7fffffe0,0x100020,-0x7fff7fe0,-0x7fffffe0,0x100020,0x108000,0,-0x7fff8000,0x8020,-0x80000000,-0x7fefffe0,-0x7fef7fe0,0x108000);
var spfunction3 = new Array (0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200);
var spfunction4 = new Array (0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080);
var spfunction5 = new Array (0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100);
var spfunction6 = new Array (0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010);
var spfunction7 = nouveau tableau (0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000, 0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000, 0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802, 0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802, 0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x8 00,0x200002);
var spfunction8 = nouveau tableau (0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x 41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000 ,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1 000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000 ,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040, 0x1040,0x40040,0x10000000,0x10041000);

//créer les 16 ou 48 sous-clés dont nous aurons besoin
var keys = des_createKeys (key);
var m=0, i, j, temp, temp2, right1, right2, left, right, looping ;
var cbcleft, cbcleft2, cbcright, cbcright2
var endloop, loopinc;
var len = message.length;
var morceau = 0;
//configurer les boucles pour les
var itérations simples et triples = keys.length == 32 ? 3 : 9 ; //simple ou triple des
if (itérations == 3) {looping = encrypt ? new Array (0, 32, 2) : new Array (30, -2, -2);}
else {looping = encrypt ? nouveau tableau (0, 32, 2, 62, 30, -2, 64, 96, 2) : nouveau tableau (94, 62, -2, 32, 64, 2, 30, -2, -2);}

//complète le message en fonction du paramètre de remplissage
if (padding == 2) message = " "; //remplissez le message avec des espaces
else if (padding == 1) {temp = 8-(len%8); message = String.fromCharCode (temp,temp,temp,temp,temp,temp,temp,temp); if (temp==8) len =8;} //Rembourrage PKCS7
else if (!padding) message = " "; //remplissez le message avec des octets nuls

//stockez le résultat ici
result = "";
tempresult = "";

if (mode == 1) { //Mode CBC
cbcleft = (iv.charCodeAt(m ) << 24) | (iv.charCodeAt(m ) << 16) | (iv.charCodeAt(m ) << 8) | iv.charCodeAt(m );
cbcright = (iv.charCodeAt(m ) << 24) | (iv.charCodeAt(m ) << 16) | (iv.charCodeAt(m ) << 8) | iv.charCodeAt(m );
m=0;
}

//boucle sur chaque morceau de 64 bits du message
while (m < len) {
left = (message.charCodeAt(m ) << 24) | (message.charCodeAt(m ) << 16) | (message.charCodeAt(m ) << 8) | message.charCodeAt(m );
right = (message.charCodeAt(m ) << 24) | (message.charCodeAt(m ) << 16) | (message.charCodeAt(m ) << 8) | message.charCodeAt(m );

//pour le mode Cipher Block Chaining, xor le message avec le résultat précédent
if (mode == 1) {if (encrypt) {left ^= cbcleft; right ^= cbcright;} else {cbcleft2 = cbcleft; cbcright2 = cbcright; cbcleft = gauche; cbcright = droite ;}}

//d'abord chaque 64 mais une partie du message doit être permutée en fonction de l'IP
temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; à droite ^= temp; gauche ^= (temp ≪≪ 4) ;
temp = ((gauche >>> 16) ^ droite) & 0x0000ffff; à droite ^= temp; gauche ^= (temp &Lt ;&Lt ; 16) ;
temp = ((droite >>> 2) ^ gauche) & 0x33333333; gauche ^= temp; droite ^= (temp ≪≪ 2) ;
temp = ((droite >>> 8) ^ gauche) & 0x00ff00ff; gauche ^= temp; droite ^= (temp &Lt ;&Lt ; 8) ;
temp = ((gauche >>> 1) ^ droite) & 0x55555555; à droite ^= temp; gauche ^= (temp ≪≪ 1) ;

gauche = ((gauche << 1) | (gauche >>> 31));
droite = ((droite << 1) | (droite >>> 31));

//faites cela 1 ou 3 fois pour chaque morceau du message
for (j=0; jendloop = looping[j 1];
loopinc = boucle[j 2];
//maintenant, parcourez et effectuez le cryptage ou le déchiffrement
for (i=looping[j]; i!=endloop; i =loopinc) { //pour plus d'efficacité
right1 = right ^ keys[i ];
right2 = ((right >>> 4) | (right << 28)) ^ touches[i 1];
//le résultat est obtenu en faisant passer ces octets à travers les fonctions de sélection S
temp = left;
gauche = droite ;
right = temp ^ (spfunction2[(right1 >>> 24) & 0x3f] | spfunction4[(right1 >>> 16) & 0x3f]
| spfunction6[(right1 >> ;> 8) & 0x3f] | spfunction8[right1 & 0x3f]
| spfunction1[(right2 >> 24) & 0x3f] |
| spfunction5[(right2 >>> 8) & 0x3f] | spfunction7[right2 & 0x3f]);
}
temp = gauche ; gauche = droite ; droite = température ; //inverser la gauche et la droite
} //pour 1 ou 3 itérations

//déplacer ensuite chacun d'un bit vers la droite
gauche = ((gauche >>> 1) | (gauche &Lt ;&Lt ; 31)) ;
droite = ((droite >>> 1) | (droite << 31));

//exécutez maintenant IP-1, qui est IP dans la direction opposée
temp = ((left >>> 1) ^ right) & 0x55555555; à droite ^= temp; gauche ^= (temp ≪≪ 1) ;
temp = ((droite >>> 8) ^ gauche) & 0x00ff00ff; gauche ^= temp; droite ^= (temp &Lt ;&Lt ; 8) ;
temp = ((droite >>> 2) ^ gauche) & 0x33333333; gauche ^= temp; droite ^= (temp ≪≪ 2) ;
temp = ((gauche >>> 16) ^ droite) & 0x0000ffff; à droite ^= temp; gauche ^= (temp &Lt ;&Lt ; 16) ;
temp = ((gauche >>> 4) ^ droite) & 0x0f0f0f0f; à droite ^= temp; gauche ^= (temp ≪≪ 4) ;

//pour le mode Cipher Block Chaining, xor le message avec le résultat précédent
if (mode == 1) {if (encrypt) {cbcleft = left; cbcright = droite;} else {gauche ^= cbcleft2; right ^= cbcright2;}}
tempresult = String.fromCharCode ((left>>>24), ((left>>>16) & 0xff), ((left>>>8) & 0xff), (gauche & 0xff), (droite>>>24), ((droite>>>16) & 0xff), ((droite>>>8) & 0xff), (droite>>>8) & 0xff), (droite>>> & 0xff));

morceau = 8 ;
if (morceau == 512) {result = tempresult; résultat temp = ""; chunk = 0;}
} //pour tous les 8 caractères ou 64 bits dans le message

//renvoie le résultat sous forme de tableau
return result tempresult;
}//fin des



//des_createKeys
//cela prend en entrée une clé de 64 bits (même si seulement 56 bits sont utilisés)
//sous forme de tableau de 2 entiers, et renvoie 16 clés de 48 bits
function des_createKeys (key) {
//déclarer cela localement accélère un peu les choses
pc2bytes0 = new Array (0,0x4,0x20000000,0x20000004,0x10000, 0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204);
pc2bytes1 = nouveau tableau (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0 x4000101,0x4100100,0x4100101);
pc2bytes2 = nouveau tableau (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0 x1000808);
pc2bytes3 = nouveau tableau (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0 x22000,0x222000,0x8022000,0x8222000);
pc2bytes4 = nouveau tableau (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010);
pc2bytes5 = nouveau tableau (0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020 ,0x2000420);
pc2bytes6 = nouveau tableau (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x1 0000002,0x80002,0x10080002);
pc2bytes7 = nouveau tableau (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x200 20000,0x20030000,0x20020800,0x20030800);
pc2bytes8 = nouveau tableau (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0 x2000002,0x2040002);
pc2bytes9 = nouveau tableau (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x1000040 0,0x408,0x10000408);
pc2bytes10 = nouveau tableau (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0 x102020);
pc2bytes11 = nouveau tableau (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x500020 0,0x4200000,0x5200000,0x4200200,0x5200200);
pc2bytes12 = nouveau tableau (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010, 0x81010,0x8080010,0x8081010);
pc2bytes13 = nouveau tableau (0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105);

//combien d'itérations (1 pour des, 3 pour triple des)
var itérations = key.length > 8 ? 3 : 1 ; //modifié par Paul le 16/6/2007 pour utiliser Triple DES pour les clés de 9 octets
//stocke les clés de retour
var keys = new Array (32 * itérations) ;
//définissez maintenant les décalages vers la gauche qui doivent être effectués
var shifts = new Array (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0);
//autres variables
var lefttemp, righttemp, m=0, n=0, temp;

for (var j=0; jleft = (key.charCodeAt(m ) << 24) | (key.charCodeAt(m ) << 16) | (key.charCodeAt(m ) << 8) | key.charCodeAt(m );
right = (key.charCodeAt(m ) << 24) | (key.charCodeAt(m ) << 16) | (key.charCodeAt(m ) << 8) | key.charCodeAt(m );

temp = ((gauche >>> 4) ^ droite) & 0x0f0f0f0f; à droite ^= temp; gauche ^= (temp ≪≪ 4) ;
temp = ((droite >>> -16) ^ gauche) & 0x0000ffff; gauche ^= temp; droite ^= (temp &Lt ;&Lt ; -16) ;
temp = ((gauche >>> 2) ^ droite) & 0x33333333; à droite ^= temp; gauche ^= (temp ≪≪ 2) ;
temp = ((droite >>> -16) ^ gauche) & 0x0000ffff; gauche ^= temp; droite ^= (temp &Lt ;&Lt ; -16) ;
temp = ((gauche >>> 1) ^ droite) & 0x55555555; à droite ^= temp; gauche ^= (temp ≪≪ 1) ;
temp = ((droite >>> 8) ^ gauche) & 0x00ff00ff; gauche ^= temp; droite ^= (temp &Lt ;&Lt ; 8) ;
temp = ((gauche >>> 1) ^ droite) & 0x55555555; à droite ^= temp; gauche ^= (temp ≪≪ 1) ;

//le côté droit doit être décalé et pour obtenir les quatre derniers bits du côté gauche
temp = (left << 8) | ((droite >>> 20) & 0x000000f0);
//gauche doit être mise à l'envers
gauche = (droite << 24) | ((droite << 8) & 0xff0000) | ((droite >>> 8) & 0xff00) | ((droite >>> 24) & 0xf0);
droit = ​​temp;

//maintenant parcourez et effectuez ces décalages sur les touches gauche et droite
for (var i=0; i < shifts.length; i ) {
//décalez les touches soit un ou deux bits vers la gauche
if (shifts[i]) {left = (left << 2) | (gauche >>> 26) ; droite = (droite ≪≪ 2) | (à droite >>> 26);}
else {gauche = (gauche << 1) | (gauche >>> 27) ; droite = (droite << 1) | (droite >>> 27);}
gauche &= -0xf; à droite &= -0xf;

//appliquez maintenant PC-2, de telle manière que E soit plus facile lors du cryptage ou du déchiffrement
//cette conversion ressemblera à PC-2 sauf que seuls les 6 derniers bits de chaque octet sont utilisés
//plutôt que 48 bits consécutifs et l'ordre des lignes sera selon
//comment les fonctions de sélection S seront appliquées : S2, S4, S6, S8, S1, S3, S5, S7
temp gauche = pc2bytes0[gauche >>> 28] | pc2bytes1[(gauche >>> 24) & 0xf]
| pc2bytes2[(gauche >>> 20) & 0xf] | pc2bytes3[(gauche >>> 16) & 0xf]
| pc2bytes4[(gauche >>> 12) & 0xf] | pc2bytes5[(gauche >>> 8) & 0xf]
| pc2bytes6[(gauche >>> 4) & 0xf];
righttemp = pc2bytes7[right >>> 28] | pc2bytes8[(droite >>> 24) & 0xf]
| pc2bytes9[(droite >>> 20) & 0xf] | pc2bytes10[(droite >>> 16) & 0xf]
| pc2bytes11[(droite >>> 12) & 0xf] | pc2bytes12[(droite >>> 8) & 0xf]
| pc2bytes13[(droite >>> 4) & 0xf];
temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;
keys[n ] = lefttemp ^ temp; touches[n ] = righttemp ^ (temp << 16);
}
} //pour chaque itération
//retourne les clés que nous avons créées
retourne les clés ;
} //fin des_createKeys



//////////////////////////// / TEST /////////////////////////////
fonction chaîneVersHex (s) {
var r = "0x" ;
var hexes = nouveau tableau ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", a","b","c","d","e","f");
for (var i=0; i> 4] hexes [s.charCodeAt(i) & 0xf];}
return r;
}

function hexToString (h) {
var r = "";
for (var i= (h.substr(0, 2)=="0x"?2:0; ireturn r;
}

var key = "c'est une clé de 24 octets !!";
var message = "Ceci est un message de test";
var ciphertext = des (clé, message, 1, 0);
document.writeln ("DES Test : " stringToHex (texte chiffré));
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

8 Superbes plugins de mise en page JQuery Page 8 Superbes plugins de mise en page JQuery Page Mar 06, 2025 am 12:48 AM

Tirez parti de jQuery pour les dispositions de page Web sans effort: 8 plugins essentiels JQuery simplifie considérablement la mise en page de la page Web. Cet article met en évidence huit puissants plugins jQuery qui rationalisent le processus, particulièrement utile pour la création de sites Web manuels

Créez vos propres applications Web Ajax Créez vos propres applications Web Ajax Mar 09, 2025 am 12:11 AM

Vous voici donc, prêt à tout savoir sur cette chose appelée Ajax. Mais qu'est-ce que c'est exactement? Le terme Ajax fait référence à un regroupement lâche de technologies utilisées pour créer un contenu Web interactif dynamique. Le terme Ajax, inventé à l'origine par Jesse J

Comment créer et publier mes propres bibliothèques JavaScript? Comment créer et publier mes propres bibliothèques JavaScript? Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

10 JQUERY FUN ET PLIGINS DE GAMES 10 JQUERY FUN ET PLIGINS DE GAMES Mar 08, 2025 am 12:42 AM

10 plugins de jeu JQuery amusants pour rendre votre site Web plus attrayant et améliorer l'adhérence des utilisateurs! Bien que Flash soit toujours le meilleur logiciel pour développer des jeux Web occasionnels, JQuery peut également créer des effets surprenants, et bien qu'il ne soit pas comparable aux jeux Flash Pure Action, dans certains cas, vous pouvez également vous amuser inattendu dans votre navigateur. jeu jquery tic toe Le "Hello World" de la programmation de jeux a désormais une version jQuery. Code source JQUERY Crazy Word Composition Game Il s'agit d'un jeu de remplissage, et il peut produire des résultats étranges en raison de ne pas connaître le contexte du mot. Code source Jeu de balayage de la mine jQuery

Chargez le contenu de la boîte dynamiquement à l'aide de AJAX Chargez le contenu de la boîte dynamiquement à l'aide de AJAX Mar 06, 2025 am 01:07 AM

Ce didacticiel montre la création de boîtes de page dynamiques chargées via AJAX, permettant un actualisation instantanée sans rechargement de page pleine. Il exploite JQuery et JavaScript. Considérez-le comme un chargeur de boîtes de contenu de style Facebook personnalisé. Concepts clés: Ajax et jQuery

Comment rédiger une bibliothèque de session sans cookie pour JavaScript Comment rédiger une bibliothèque de session sans cookie pour JavaScript Mar 06, 2025 am 01:18 AM

Cette bibliothèque JavaScript exploite la propriété Window.Name pour gérer les données de session sans compter sur les cookies. Il offre une solution robuste pour stocker et récupérer des variables de session à travers les navigateurs. La bibliothèque fournit trois méthodes de base: Session

Tutoriel JQuery Parallax - Contexte d'en-tête animé Tutoriel JQuery Parallax - Contexte d'en-tête animé Mar 08, 2025 am 12:39 AM

Ce tutoriel montre comment créer un effet de fond de parallaxe captivant à l'aide de jQuery. Nous allons construire une bannière d'en-tête avec des images en couches qui créent une profondeur visuelle étonnante. Le plugin mis à jour fonctionne avec jQuery 1.6.4 et plus tard. Télécharger le

See all articles