Sono qui per presentarvi un altro esercizio di programmazione, sempre by me xD.
L'esercizio è QUASI uguale al precedente, si usano sempre le posizioni delle lettere dell'alfabeto ma in modo diverso.
E' simile al Cifrario di Cesare, ma il cifrario di Cesare fa avanzare la posizione delle lettere di +3, mentre questo di +13 (da cui deriva anche il nome ROT13).
Questo esercizio prevede di fare un encrypter/decrypter di ROT13 e postare sempre nel tag off topic il seguente testo criptato:
Lo script deve inoltre rimuovere qualsiasi carattere speciale, deve convertire la frase in minuscolo e deve rimuovere tutti gli spazi. Il risultato della funzione di encrypt è una stringa in maiuscolo e senza spazi, mentre nella funzione decrypt il risultato è la stringa criptata (se avete scritto bene la funzione di encrypt la funzione di decrypt vi restituiràla stringa criptata senza spazi e tutta in minuscolo).
Soluzione in PHP (Non sbirciate finché non avete finito il vostro, altrimenti non vale):
[ot]
[/ot]
Ulteriori informazioni sull'algoritmo ROT13
Happy coding!
L'esercizio è QUASI uguale al precedente, si usano sempre le posizioni delle lettere dell'alfabeto ma in modo diverso.
E' simile al Cifrario di Cesare, ma il cifrario di Cesare fa avanzare la posizione delle lettere di +3, mentre questo di +13 (da cui deriva anche il nome ROT13).
Questo esercizio prevede di fare un encrypter/decrypter di ROT13 e postare sempre nel tag off topic il seguente testo criptato:
Codice:
Ciao, se sei riuscito a criptare questo testo con successo, significa che hai compiuto con successo l'esercizio. Ottimo!
Soluzione in PHP (Non sbirciate finché non avete finito il vostro, altrimenti non vale):
[ot]
PHP:
/* ROT-13 Encrypter */
$alpha = str_split('abcdefghijklmnopqrstuvwxyz',1);
function encode_rot13($string) {
global $alpha;
$keys = array();
for ($i = 0;$i < count($alpha); $i++) {
if ($i >= 13) {$sx = $i-13;}else{$sx = $i+13;}
$keys[$alpha[$i]] = $alpha[($sx)];
}
$string = strtolower($string);
$banned=explode("X","!X\"X£X\$X%X&X/X(X)X?X'XìX^X0X1X23X4X5X6X7X8X9X@XòXçX#XàX°XùX§X*X+X]X}XèX[X{XéX,X;X.X:X-X_X<X>X|X ");
$string = str_replace($banned,'',$string);
$str = '';
for ($i=0;$i<strlen($string);$i++) {
$str .= $keys[$string[$i]];
}
return strtoupper($str);
}
function decode_rot13($encrypted) {
global $alpha;
$keys = array();
for ($i=0;$i<count($alpha);$i++) {
if ($i >= 13) {$sx = $i-13;}else{$sx = $i+13;}
$keys[$alpha[$sx]] = $alpha[$i];
}
$encrypted = strtolower($encrypted);
$ret = '';
for ($i=0;$i<strlen($encrypted);$i++)
$ret .= $keys[$encrypted[$i]];
return $ret;
}
Ulteriori informazioni sull'algoritmo ROT13
Happy coding!