Alphabet Radio et Code Morse

Image non disponible

Alphabet Radio International et Code Morse : encoder/décoder pour "le fun" (adaptation du "standard international").

5 commentaires Donner une note à l'article (0)

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Avant-propos

Alphabet Radio International - Radiocommunication
Image non disponible Alphabet radio (fr.wikipedia.org/wiki/Alphabet_radio)
Alphabet phonétique de l'OTAN
www.aviationpassion.org

On appelle "Alphabet Radio" l'alphabet international utilisé en radiotéléphonie. Les transmissions radio sont soumises fréquemment à des parasites et interférences. Il est donc parfois nécessaire d'épeler les mots importants.

Pour éviter les ambiguïtés entre les sons semblables (comme "m" et "n", "p" et "b") et par souci de redondance, on utilise des mots pour désigner les lettres. Ces mots constituent un alphabet radio international qui a été adopté par l'Union internationale des télécommunications, l'Organisation de l'aviation civile internationale (OACI) et l'OTAN.


Code Morse
Image non disponible www.codemorse.fr : codes, caractères spéciaux, ...

Inventé par Samuel Morse en 1835, le "Morse" associe à chaque caractère du texte à transmettre, une suite unique de "beeps" courts ou longs. Ces signaux sont transmis par radio, par lumières ou par télégraphie, comme initialement.

Après avoir été utilisé notamment pour des communications en mer ou par les militaires, il est principalement utilisé aujourd'hui par les radio-amateurs pour des communications radio à longue distance (ondes courtes).

II. Principe

Principe :
  • Une table de correspondance (array) mettant en correspondance les éléments "en clair" et les éléments "codés" ;
  • Un paramètre séparateur ;
  • Une fonction de codage ;
  • Une fonction de décodage.

Les 2 scripts présentés ici sont des adaptations du standard.

Des caractères ont été ajoutés, pour pouvoir coder/décoder des phrases courantes (avec ponctuations, ...).
Elles renvoient une chaine parfaitement compréhensible, et ... fun!

Les scripts incluent :
  • Une fonction de suppression des accents, ("international") ;
  • Le caractère de séparation est ici : " " (espace) ;
  • Quelques "adaptations" (non-conformes au standard).

Ces 2 scripts ne sont pas des méthodes de cryptage ! NE PAS les utiliser pour des données sensibles !!!

En effet, le codage/décodage d'une chaine ne donne pas forcément la chaine initiale (suppression des accents, adaptations...)
De plus, les codes "Alphabet Radio" et "Morse" sont très connus, donc faciles à décoder !

Mise à jour 2017 : remplacement des scripts pour une meilleure compatibilité UTF-8.

III. Alphabet Radio International

III-A. Alphabet Radio International + Adaptations

Alphabet Radio International
A Alpha N November 0 Zero
B Bravo O Oscar 1 One
C Charlie P Papa 2 Two
D Delta Q Quebec 3 Three
E Echo R Romeo 4 Four
F Foxtrot S Sierra 5 Five
G Golf T Tango 6 Six
H Hotel U Uniform 7 Seven
I India V Victor 8 Eight
J Juliet W Whisky 9 Nine
K Kilo X X-ray    
L Lima Y Yankee , Decimal
M Mike Z Zulu . Stop
Adaptations (non-conformes au standard)
- chiffres : 0 1 ... 9 Zero One ... Nine
- lettres minuscules : a b, ... z alpha bravo ... zulu
- lettres majuscules : A B, ... Z ALPHA BRAVO ... ZULU
- lettres accentuées   on supprime les accents
- ponctuation (standard) : , . Decimal Stop
- ponctuation (autres) : ? ' ! / ( ) & : ;
= + - _ " $ @ €
(on conserve tel quel)
- cas particulier : ' \' (en PHP)
- espace (entre les mots) :   | (barre verticale)
Exemple
phrase : C'est l'idée à 2€ ou 1,6$ !
codée : CHARLIE ' echo sierra tango | lima ' india delta echo echo | alpha | Two € | oscar uniform | One Decimal Six $ | !
décodée : C'est l'idee a 2€ ou 1,6$ !

III-B. Alphabet Radio : table de correspondance, fonctions de codage / décodage

alpha_radio_functions.php
Sélectionnez

<?php
// ----------------------------------------------------------
// fonction Table de CORRESPONDANCE - ALPHABET RADIO
// ----------------------------------------------------------
function fct_alpha_radio_config()
{
	// -------------
	$table_config 	= array(
	'a'	=>	'alpha',
	'b'	=>	'bravo',
	'c'	=>	'charlie',
	'd'	=>	'delta',
	'e'	=>	'echo',
	'f'	=>	'foxtrot',
	'g'	=>	'golf',
	'h'	=>	'hotel',
	'i'	=>	'india',
	'j'	=>	'juliet',
	'k'	=>	'kilo',
	'l'	=>	'lima',
	'm'	=>	'mike',

	'n'	=>	'november',
	'o'	=>	'oscar',
	'p'	=>	'papa',
	'q'	=>	'quebec',
	'r'	=>	'romeo',
	's'	=>	'sierra',
	't'	=>	'tango',
	'u'	=>	'uniform',
	'v'	=>	'victor',
	'w'	=>	'whisky',
	'x'	=>	'x-ray',
	'y'	=>	'yankee',
	'z'	=>	'zulu',

	'A'	=>	'ALPHA',
	'B'	=>	'BRAVO',
	'C'	=>	'CHARLIE',
	'D'	=>	'DELTA',
	'E'	=>	'ECHO',
	'F'	=>	'FOXTROT',
	'G'	=>	'GOLF',
	'H'	=>	'HOTEL',
	'I'	=>	'INDIA',
	'J'	=>	'JULIET',
	'K'	=>	'KILO',
	'L'	=>	'LIMA',
	'M'	=>	'MIKE',

	'N'	=>	'NOVEMBER',
	'O'	=>	'OSCAR',
	'P'	=>	'PAPA',
	'Q'	=>	'QUEBEC',
	'R'	=>	'ROMEO',
	'S'	=>	'SIERRA',
	'T'	=>	'TANGO',
	'U'	=>	'UNIFORM',
	'V'	=>	'VICTOR',
	'W'	=>	'WHISKY',
	'Z'	=>	'X-RAY',
	'Y'	=>	'YANKEE',
	'Z'	=>	'ZULU',
	
	'0'	=>	'Zero',
	'1'	=>	'One',
	'2'	=>	'Two',
	'3'	=>	'Three',
	'4'	=>	'Four',
	'5'	=>	'Five',
	'6'	=>	'Six',
	'7'	=>	'Seven',
	'8'	=>	'Eight',
	'9'	=>	'Nine',

	','	=>	'Decimal',
	'.'	=>	'Stop',
	' '	=>	'|'		// spécial : espace
	);
	// -------------
	return $table_config;
}
// ----------------------------------------------------------
// fonction d ENCODAGE - ALPHABET RADIO
// ----------------------------------------------------------
function fct_alpha_radio_encode($chaine) {
   // --------------
   $table_config	= fct_alpha_radio_config();	// récupère la config
   $separateur		= ' '; 	// espace
   // --------------
   $chaine 			= no_accent($chaine); 	// suppression des accents
   $nbrcar 			= mb_strlen($chaine);	// nombre de valeurs (caractères)
   // --------------
   $chaine_temp 	= array();
   for ($i=0; $i<$nbrcar; $i++)
   {
      $char			= mb_substr($chaine,$i,1);
      $chaine_temp[] 	= ( array_key_exists($char, $table_config) )? $table_config[$char] : $char; 	// retourne la correpondance, ou le caractère lui-même si pas trouvé
   }
   // --------------
   $chaine_code 	= ( !empty($chaine_temp) )? implode( $separateur, $chaine_temp ) : ''; // on implose la chaine résultante
   return $chaine_code;
}
// ----------------------------------------------------------
// fonction de DECODAGE - ALPHABET RADIO
// ----------------------------------------------------------
function fct_alpha_radio_decode($chaine) {
   // --------------
   $table_config	= fct_alpha_radio_config();	// récupère la config
   $separateur		= ' '; 	// espace
   // --------------
   $chaine_array	= explode( $separateur, $chaine ); // on explose la chaine en array
   // --------------
   $chaine_temp 	= array();
   foreach ( $chaine_array as $string )
   {
	  $j 			= array_search( $string, $table_config ); 	// cherche l index correspondant 
      $chaine_temp[] = ( !empty($j) )? $j : $string; 	// retourne l index, ou l'élément lui-même si pas trouvé
   }
   // --------------
   $chaine_decode 	= ( !empty($chaine_temp) )? implode( '', $chaine_temp ) : ''; // on implose la chaine résultante
   return $chaine_decode;
}
// ----------------------------------------------------------
// fonction de suppression des caractères accentués
// ----------------------------------------------------------
function no_accent( $chaine )
{
	$chaine			= html_entity_decode( $chaine ); 		// Convertit les entités HTML spéciales en caractères
	// -------------
	// remplacement : caractères accentués et espace
	$NON_array 		= array(
	'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'A', 'A',
	'Ç', 'C', 'C', 'Œ',
	'D', 'Ð',
	'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'a', 'a',
	'ç', 'c', 'c', 'œ',
	'd', 'd',
	'È', 'É', 'Ê', 'Ë', 'E', 'E',
	'G',
	'Ì', 'Í', 'Î', 'Ï', 'I',
	'L', 'L', 'L',
	'è', 'é', 'ê', 'ë', 'e', 'e',
	'g',
	'ì', 'í', 'î', 'ï', 'i',
	'l', 'l', 'l',
	'Ñ', 'N', 'N',
	'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'O',
	'R', 'R',
	'S', 'S', 'Š',
	'ñ', 'n', 'n',
	'ò', 'ó', 'ô', 'ö', 'ø', 'o',
	'r', 'r',
	's', 's', 'š',
	'T', 'T',
	'Ù', 'Ú', 'Û', 'U', 'Ü', 'U', 'U',
	'Ý', 'ß',
	'Z', 'Z', 'Ž',
	't', 't',
	'ù', 'ú', 'û', 'u', 'ü', 'u', 'u',
	'ý', 'ÿ',
	'z', 'z', 'ž',
	);
	// -------------
	$OUI_array 		= array(
	'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'A', 'A',
	'C', 'C', 'C', 'CE',
	'D', 'D',
	'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'a', 'a',
	'c', 'c', 'c', 'ce',
	'd', 'd',
	'E', 'E', 'E', 'E', 'E', 'E',
	'G',
	'I', 'I', 'I', 'I', 'I',
	'L', 'L', 'L',
	'e', 'e', 'e', 'e', 'e', 'e',
	'g',
	'i', 'i', 'i', 'i', 'i',
	'l', 'l', 'l',
	'N', 'N', 'N',
	'O', 'O', 'O', 'O', 'O', 'O', 'O',
	'R', 'R',
	'S', 'S', 'S',
	'n', 'n', 'n',
	'o', 'o', 'o', 'o', 'o', 'o',
	'r', 'r',
	's', 's', 's',
	'T', 'T',
	'U', 'U', 'U', 'U', 'U', 'U', 'U',
	'Y', 'Y',
	'Z', 'Z', 'Z',
	't', 't',
	'u', 'u', 'u', 'u', 'u', 'u', 'u',
	'y', 'y',
	'z', 'z', 'z',
	);
	// -------------
	$no_accent 		= str_replace($NON_array, $OUI_array, $chaine);
	// -------------
	return $no_accent;
}
// ----------------------------------------------------------

III-C. Alphabet Radio : Utilisation

Encoder
Sélectionnez

<?php
// ----------------------------------------------------------
   require_once(__DIR__.'/alpha_radio_functions.php');
// ----------------------------------------------------------
$chaine 		= 'C\'est l\'idée à 2 ou 1,6$ !';
$chaine_code 	= fct_alpha_radio_encode( $chaine );

echo $chaine_code;
?>
Décoder
Sélectionnez

<?php
// ----------------------------------------------------------
   require_once(__DIR__.'/alpha_radio_functions.php');
// ----------------------------------------------------------
$chaine_code 	= "CHARLIE ' echo sierra tango | lima ' india delta echo echo | alpha | Two  | !";
$chaine_decode 	= fct_alpha_radio_decode( $chaine_code );

echo $chaine_decode;
?>

III-D. Alphabet Radio : Exemple (formulaire)

AlphaRadioForm.php
Sélectionnez

<?php
// ----------------------------------------------------------
   require(__DIR__.'alpha_radio_function.php');
// ----------------------------------------------------------
if ( !empty($_POST['codage']) && $_POST['codage'] == 'encoder')
{
   $machaine 		= trim($_POST['machaine']);
   $retourchaine 	= fct_alpha_radio_encode($machaine);
} elseif ( !empty($_POST['codage']) && $_POST['codage'] == 'decoder')
{
   $machaine 		= trim($_POST['machaine']);
   $retourchaine 	= fct_alpha_radio_decode($machaine);
} else
{
   $machaine 		= '';
   $retourchaine 	= '';
}
// ----------------------------------------------------------
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    <title>Alphabet Radio</title>
</head>
<body>

	<h4>Coder/Décoder - <b>Alphabet Radio</b></h4>
	<form method="post" action="">
		<p>
			<textarea rows="3" name="machaine" cols="35"><?php echo $machaine; ?></textarea><br />
		</p>
		<p>
			<label><input type="radio" name="codage" value="encoder"> ENCODER une phrase</label>
		</p>
		<p>
			<label><input type="radio" name="codage" value="decoder"> DECODER un Alphabet Radio</label>
		</p>
		<p>
			<input type="submit" value="Generer" name="submit" />
		</p>
	</form>

	<div style="border:1px solid #ccc; padding:5px;">
	   <?php echo $retourchaine; ?>
	</div>

</body>
</html>

IV. Code Morse

IV-A. Code Morse International + Adaptations

Code Morse
A .- N -. 0 ----
B -... O --- 1 .----
C -.-. P .--. 2 ..---
D -.. Q --.- 3 ...--
E . R .-. 4 ....-
F ..-.. S ... 5 ....
G --. T - 6 -....
H .... U ..- 7 --...
I .. V ...- 8 ---..
J .--- W .-- 9 ----.
K -.- X -..-  
L .-.. Y -.--
M -- Z --..
Caractères spéciaux (ponctuation)
Point . .-.-.- Deux-points : ---...
Virgule , --..-- Point-virgule ; -.-.-.
Point d'interrogation ? ..--.. égal = -...-
Apostrophe ' .----. plus + .-.-.
Point d'exclamation ! -.-.-----. moins / trait d'union - -....-
Barre oblique / -..-. Tiret bas (underscore) _ ..--.-
Parenthèse ouvrante ( -.--. Guillemet " .-..-.
Parenthèse fermante ) -.--.- Dollar $ ...-..-
Esperluette & .-... Arobase @ .--.-.
Adaptations (non-conformes au standard)
- lettres minuscules : a b, ... z on les change en majuscules
- lettres majuscules : A B, ... Z (voir ci-dessus)
- chiffres : 0 1 ... 9
- ponctuation : . , ? ' ! / ( ) & : ;
= + - _ " $ @
- lettres accentuées   on supprime les accents
- espace (entre les mots) :   | (barre verticale)
- caractère ajouté : ...-.-.--- (concaténation de EURO)
Exemple
phrase : C'est l'idée à 2€ ou 1,6$ !
codée : -.-. .----. . ... - | .-.. .----. .. -.. . . | .- | ..--- ...-.-.--- | --- ..- | .---- --..-- -.... ...-..- | -.-.-----.
décodée : C'EST L'IDEE A 2€ OU 1,6$ !

IV-B. Code Morse : table de correspondance, fonctions de codage / décodage

code_morse_functions.php
Sélectionnez

<?php
// ----------------------------------------------------------
// fonction Table de CORRESPONDANCE - CODE MORSE
// ----------------------------------------------------------
function fct_morse_config()
{
	// -------------
	$table_config 	= array(
	'0'	=>	'-----',
	'1'	=>	'.----',
	'2'	=>	'..---',
	'3'	=>	'...--',
	'4'	=>	'....-',
	'5'	=>	'....',
	'6'	=>	'-....',
	'7'	=>	'--...',
	'8'	=>	'---..',
	'9'	=>	'----.',

	'A'	=>	'.-',
	'B'	=>	'-...',
	'C'	=>	'-.-.',
	'D'	=>	'-..',
	'E'	=>	'.',
	'F'	=>	'..-..',
	'G'	=>	'--.',
	'H'	=>	'....',
	'I'	=>	'..',
	'J'	=>	'.---',
	'K'	=>	'-.-',
	'L'	=>	'.-..',
	'M'	=>	'--',
	
	'N'	=>	'-.',
	'O'	=>	'---',
	'P'	=>	'.--.',
	'Q'	=>	'--.-',
	'R'	=>	'.-.',
	'S'	=>	'...',
	'T'	=>	'-',
	'U'	=>	'..-',
	'V'	=>	'...-',
	'W'	=>	'.--',
	'X'	=>	'-..-',
	'Y'	=>	'-.--',
	'Z'	=>	'--..',

	' '	=>	'|',
	'.'	=>	'.-.-.-',
	','	=>	'--..--',
	'?'	=>	'..--..',
	'\''=>	'.----.',
	'!'	=>	'-.-.-----.',
	'/'	=>	'-..-.',
	'('	=>	'-.--.',
	')'	=>	'-.--.-',
	'&'	=>	'.-...',
	':'	=>	'---...',
	';'	=>	'-.-.-.',
	'='	=>	'-...-',
	'+'	=>	'.-.-.',
	'-'	=>	'-....-',
	'_'	=>	'..--.-',
	'"'	=>	'.-..-.',
	'$'	=>	'...-..-',
	'@'	=>	'.--.-.',
	''	=>	'...-.-.---',
	);
	// -------------
	return $table_config;
}
// ----------------------------------------------------------
// fonction d ENCODAGE - CODE MORSE
// ----------------------------------------------------------
function fct_morse_encode($chaine) {
   // --------------
   $table_config	= fct_morse_config();	// récupère la config
   $separateur		= ' '; 	// espace
   // --------------
   // Important (CODE MORSE) : on passe tout en majuscules !
   $chaine 		= mb_strtoupper($chaine);
   // --------------
   $chaine 		= no_accent($chaine); 	// suppression des accents
   $nbrcar 		= mb_strlen($chaine);	// nombre de valeurs (caractères)
   // --------------
   $chaine_temp 	= array();
   for ($i=0; $i<$nbrcar; $i++)
   {
      $char		= mb_substr($chaine,$i,1);
      $chaine_temp[] 	= ( array_key_exists($char, $table_config) )? $table_config[$char] : $char; 	// retourne la correpondance, ou le caractère lui-même si pas trouvé
   }
   // --------------
   $chaine_code 	= ( !empty($chaine_temp) )? implode( $separateur, $chaine_temp ) : ''; // on implose la chaine résultante
   return $chaine_code;
}
// ----------------------------------------------------------
// fonction de DECODAGE - CODE MORSE
// ----------------------------------------------------------
function fct_morse_decode($chaine) {
   // --------------
   $table_config	= fct_morse_config();	// récupère la config
   $separateur		= ' '; 	// espace
   // --------------
   $chaine_array	= explode( $separateur, $chaine ); // on explose la chaine en array
   // --------------
   $chaine_temp 	= array();
   foreach ( $chaine_array as $string )
   {
	  $j 			= array_search( $string, $table_config ); 	// cherche l index correspondant 
      $chaine_temp[] = ( !empty($j) )? $j : $string; 	// retourne l index, ou l'élément lui-même si pas trouvé
   }
   // --------------
   $chaine_decode 	= ( !empty($chaine_temp) )? implode( '', $chaine_temp ) : ''; // on implose la chaine résultante
   return $chaine_decode;
}
// ----------------------------------------------------------
// fonction de suppression des caractères accentués
// ----------------------------------------------------------
function no_accent( $chaine )
{
	$chaine			= html_entity_decode( $chaine ); 		// Convertit les entités HTML spéciales en caractères
	// -------------
	// remplacement : caractères accentués et espace
	$NON_array 			= array(
	'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'A', 'A',
	'Ç', 'C', 'C', 'Œ',
	'D', 'Ð',
	'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'a', 'a',
	'ç', 'c', 'c', 'œ',
	'd', 'd',
	'È', 'É', 'Ê', 'Ë', 'E', 'E',
	'G',
	'Ì', 'Í', 'Î', 'Ï', 'I',
	'L', 'L', 'L',
	'è', 'é', 'ê', 'ë', 'e', 'e',
	'g',
	'ì', 'í', 'î', 'ï', 'i',
	'l', 'l', 'l',
	'Ñ', 'N', 'N',
	'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'O',
	'R', 'R',
	'S', 'S', 'Š',
	'ñ', 'n', 'n',
	'ò', 'ó', 'ô', 'ö', 'ø', 'o',
	'r', 'r',
	's', 's', 'š',
	'T', 'T',
	'Ù', 'Ú', 'Û', 'U', 'Ü', 'U', 'U',
	'Ý', 'ß',
	'Z', 'Z', 'Ž',
	't', 't',
	'ù', 'ú', 'û', 'u', 'ü', 'u', 'u',
	'ý', 'ÿ',
	'z', 'z', 'ž',
	);
	// -------------
	$OUI_array 		= array(
	'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'A', 'A',
	'C', 'C', 'C', 'CE',
	'D', 'D',
	'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'a', 'a',
	'c', 'c', 'c', 'ce',
	'd', 'd',
	'E', 'E', 'E', 'E', 'E', 'E',
	'G',
	'I', 'I', 'I', 'I', 'I',
	'L', 'L', 'L',
	'e', 'e', 'e', 'e', 'e', 'e',
	'g',
	'i', 'i', 'i', 'i', 'i',
	'l', 'l', 'l',
	'N', 'N', 'N',
	'O', 'O', 'O', 'O', 'O', 'O', 'O',
	'R', 'R',
	'S', 'S', 'S',
	'n', 'n', 'n',
	'o', 'o', 'o', 'o', 'o', 'o',
	'r', 'r',
	's', 's', 's',
	'T', 'T',
	'U', 'U', 'U', 'U', 'U', 'U', 'U',
	'Y', 'Y',
	'Z', 'Z', 'Z',
	't', 't',
	'u', 'u', 'u', 'u', 'u', 'u', 'u',
	'y', 'y',
	'z', 'z', 'z',
	);
	// -------------
	$no_accent 		= str_replace($NON_array, $OUI_array, $chaine);
	// -------------
	return $no_accent;
}
// ----------------------------------------------------------

IV-C. Code Morse : Utilisation

Encoder
Sélectionnez

<?php
// ----------------------------------------------------------
   require_once(__DIR__.'/code_morse_functions.php');
// ----------------------------------------------------------
$chaine 		= "C'est l'idée à 2 ou 1,6$ !";
$chaine_code 	= fct_morse_encode($chaine);

echo $chaine_code;
?>
Décoder
Sélectionnez

<?php
// ----------------------------------------------------------
   require_once(__DIR__.'/code_morse_functions.php');
// ----------------------------------------------------------
$chaine_code 	= "-.-. .----. . ... - | .-.. .----. .. -.. . . | .- | ..--- ...-.-.--- | -.-.-----.";
$chaine_decode 	= fct_morse_decode($chaine_code);

echo $chaine_decode;
?>

IV-D. Code Morse : Exemple (formulaire)

MorseForm.php
Sélectionnez

<?php
// ----------------------------------------------------------
   require(__DIR__.'/code_morse_function.php');
// ----------------------------------------------------------
if ( !empty($_POST['codage']) && $_POST['codage'] == 'encoder')
{
   $machaine 		= trim($_POST['machaine']);
   $retourchaine 	= fct_morse_encode($machaine);
} elseif ( !empty($_POST['codage']) && $_POST['codage'] == 'decoder')
{
   $machaine 		= trim($_POST['machaine']);
   $retourchaine 	= fct_morse_decode($machaine);
} else
{
   $machaine 		= '';
   $retourchaine 	= '';
}
// ----------------------------------------------------------
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    <title>Code Morse</title>
</head>
<body>

	<h4>Coder/Décoder - <b>Code Morse</b></h4>
	<form method="post" action="">
		<p>
			<textarea rows="3" name="machaine" cols="35"><?php echo $machaine; ?></textarea><br />
		</p>
		<p>
			<label><input type="radio" name="codage" value="encoder"> ENCODER une phrase</label>
		</p>
		<p>
			<label><input type="radio" name="codage" value="decoder"> DECODER un code morse</label>
		</p>
		<p>
			<input type="submit" value="Generer" name="submit" />
		</p>
	</form>

	<div style="border:1px solid #ccc; padding:5px;">
	   <?php echo $retourchaine; ?>
	</div>

</body>
</html>

V. Conclusion

Les scripts présentés ici ne sont pas des méthodes de cryptage ! NE PAS les utiliser pour des données sensibles !!!

En effet, le codage/décodage d'une chaine ne donne pas forcément la chaine initiale (suppression des accents, adaptations...)
De plus, les codes "Alphabet Radio" et "Morse" sont très connus, donc faciles à décoder !

Cependant, elles renvoient une chaîne parfaitement compréhensible, ... et fun !
Amusez-vous !

5 commentaires Donner une note à l'article (0)

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Jérôme Réaux. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.