JavaScript: codifica in RC4

JavaScript: codifica in RC4

RC4 non è tra gli algoritmi più sicuri per la codifica dei dati. Tuttavia esiste una soluzione anche in JavaScript.

La soluzione è la seguente:


/* @param String key - Chiave segreta per la codifica e decodifica
 * @param String str - La stringa da codificare o decodificare
 * @return String
 */


function rc4( key, str ) {
	var s = [], j = 0, x, res = "";
	for ( var i = 0; i < 256; i++ ) {
		s[i] = i;
	}
	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;
	for ( var y = 0; y < str.length; y++ ) {
		i = ( i + 1 ) % 256;
		j = ( j + s[i] ) % 256;
		x = s[i];
		s[i] = s[j];
		s[j] = x;
		res += String.fromCharCode( str.charCodeAt( y ) ^ s[ ( s[i] + s[j] ) % 256 ] );
	}
	return res;
}

Torna su