How to accept accentued characters

J

JellyON

Hi. I'm trying to use the encryption script delivered with the HTML
Editor : WebExpert 6. This script doesn't allows accentued characters.
Then, sometimes ago I asked for a way to modify-it and someone advised
me to escape() the message before encryption, and unescape() any de-
encryption result... Well, I thought it would works, but don't succeed
in real :-(

How would you modify the script below for accepting accentued chars ?

Here is a copie of the original WebExpert's HTML page :
--------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-
1">
<meta name="generator" content="WebExpert 6">
<!-- JavaScript Couper-coller de ISN Toolbox
Copyright 1996, Infohiway Server Network. L'utilisation restreinte
est accordée (pour un usage personnel ou commercial en autant que le
code de programmation n'est pas vendu directement). De plus, cet avis
doit être présent dans un endroit quelconque de votre document HTML.
Un hyperlien vers http://www.infohiway.com sera toujours apprécié,
mais n'est nullement nécessaire. ;-) -->
<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>

Long, but ready to be load in your browser :)
 
J

JellyON

OK, done ! It was not a problem around escape/unescape, but a one due to
amissing ";". Funny, isn't it. Well, then, the solution is effectively
to escape prior to encrypt and unescape prior to retrieve the original
sentence.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top