- Code: Tout sélectionner
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="allomonsite.com">
<meta name="generator" content="allomonsite.com">
<script language="JavaScript">
<!-- Begin
/* Même si la chaîne "cs" est en ordre ASCII ci-dessous, vous pouvez la "mélanger" si vous voulez
compliquer des tentatives de décryption. */
bs="\\ ";
cs=' !"#$%&';
cs+="'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS"
+"TUVWXYZ^[_]'abcdefghijklmnopqrstuvwxyz{|}~\t\r\n"+bs;
cm=0;
cm1=0;
cflg="";
/* Même si cet exemple has été préparé en utilisant un paradigme de 4 bits,
vous pouvez le changer pour un à 2, 3 ou 5 bits.
Par exemple, un paradigme à 2 bits ressemblerait à ceci:
four="00 01 10 11";
fourletter="a b c d";
Et le code dans les fonctions d'encryption et de décryption ci-dessous devraient
être modifiées pour réfléter ce changement. Il y a des commentaires aux endroits appropriés.
ATTENTION: N'utilisez pas un espace comme caractère d'impression dans la construction de la
variable "sixletter". Voici d'autres exemples possibles:
sixletter="A B C D E F G H "
+"I J K L M N O P ";
sixletter=". , / ' | _ ( ~ "
+"! @ ^ * - : ; ? "; */
sixteen="0000 0001 0010 0011 0100 0101 0110 0111 "
+"1000 1001 1010 1011 1100 1101 1110 1111 ";
sixletter="; . * , x ( i : "
+"_ - ^ < > ' ~ = ";
function samp(){
// En premier, prenons les 2 chaînes
ls="";
ls1="";
kwd=document.ex1.key.value;
kwdpd=kwd;
msg=document.ex1.ps.value;
// étendons la clé pour être assez longue pour le message
if (cflg==0){
sl=msg.length;
}
else{
sl=msg.length/2;
}
while (kwd.length<sl){
kwd+=kwdpd;
}
document.ex1.ps.value="Je suis en train de convertir la clé et le message...";
if (cflg!=1){
setTimeout("samp2()",1000);
}
else{
setTimeout("decryp()",1000);
}
}
function samp2(){
// Maintenant, conversion des 2 chaînes en binaire
for (var i=0;i<msg.length;i++){
chk=kwd.charAt(i);
cmk=cs.indexOf(chk)+32;
chm=msg.charAt(i);
cmm=cs.indexOf(chm)+32;
for (var j=7;j>-1;j--){
c=Math.pow(2,j);
if (cmk>=c){
cmk=cmk-c;
ls+="1";
}
else{
ls+="0";
}
if (cmm>=c){
cmm=cmm-c;
ls1+="1";
}
else{
ls1+="0";
}
}
}
document.ex1.ps.value="Je suis en train d'encrypter le message...";
setTimeout("samp3()",1000);
}
function samp3(){
// Maintenant, on converti les bits en utilisant la clé
ls2="";
ls4="";
for (var i=0;i<ls1.length;i++){
ch=ls.charAt(i);
ch1=ls1.charAt(i);
if (ch=="0"){
if (ch1=="0"){
ch1="1";
}
else{
ch1="0";
}
}
ls2+=ch1;
}
/* Si un paradigme de longeur différent est utilisé, changez la boucle ci-dessous */
for (var i=0;i<ls2.length;i=i+4){
ls3=ls2.substring(i,i+4);
y=sixteen.indexOf(ls3);
ls4+=sixletter.charAt(y);
}
document.ex1.ps.value=ls4;
}
function decryp(){
// Converti le mot clé encore une fois
ls="";
for (var i=0;i<kwd.length;i++){
chk=kwd.charAt(i);
cmk=cs.indexOf(chk)+32;
for (var j=7;j>-1;j--){
c=Math.pow(2,j);
if (cmk>=c){
cmk=cmk-c;
ls+="1";
}
else{
ls+="0";
}
}
}
document.ex1.ps.value="Je suis à décrypter le message...";
setTimeout("decryp1()",1000);
}
function decryp1(){
/* Ensuite, on ramène le message de 4 bits à 8 bits.
Si un paradigme de longeur différent est utilisé, changez la boucle ci-dessous */
ls1="";
for (var i=0;i<msg.length;i++){
ls3=msg.charAt(i);
y=sixletter.indexOf(ls3);
ls1+=sixteen.substring(y,y+4);
}
// Ensutie on converti les bits en utilisant la clé
ls2="";
ls4="";
for (var i=0;i<ls1.length;i++){
ch=ls.charAt(i);
ch1=ls1.charAt(i);
if (ch=="0"){
if (ch1=="0"){
ch1="1";
}
else{
ch1="0";
}
}
ls2+=ch1;
}
for (var i=0;i<ls2.length;i=i+8){
ls3=ls2.substring(i,i+8);
y=parseInt(ls3,2);
ls4+=cs.charAt(y-32);
}
document.ex1.ps.value=ls4;
}
// End -->
</script>
</head>
<body>
<div align="center">
<TABLE BORDER=0 WIDTH=500>
<TR><TD ALIGN=CENTER><FONT face="Helvetica,Arial,Geneva"><B>Une simple Encryption utilisant un déplacage de bit</B></FONT><HR NOSHADE></TD></TR>
<TR><TD><FONT face="Helvetica,Arial,Geneva">
<FORM NAME="ex1">
<B>Premièrement: </B>Coller ou inscriver votre clé, mot-clé ou phrase-clé ici:
<BR><INPUT TYPE="password" NAME="key" VALUE="" SIZE=84>
<P><B>Deuxièmement: </B>Coller ou inscriver votre message à encrypter:
<BR><TEXTAREA NAME="ps" ROWS=10 COLS=75 WRAP=VIRTUAL></TEXTAREA>
<BR><B>Troisièment: </B> <INPUT TYPE="button" NAME="but" VALUE=" Encrypter " onClick="cflg=0;samp()">
<BR><B>Quatrièment: </B> <INPUT TYPE="button" NAME="but1" VALUE=" Décrypter " onClick="cflg=1;samp()"></FORM>
<P>Ce script supporte également de multiples (récursive) encryptions utilisant une même ou différente clé, mot-clé ou phrase-clé pour chaque itération. Cependant, la taille du message, doublera à chaque encryption.</FONT><HR NOSHADE></TD></TR>
</TABLE>
</div>
</body>
</html>
