Encrypt accentued characters

J

JellyON

Do you know about an encryption script which accepts the accentued
characters. I've found the one below (from WebExpert premade scripts),
but when you encrypt "assurément", then reverse the process, you
retrieve "assurment" : the "é" is gone !

Here is this script (maybe you have another) in an HTML page (simply
copy/paste to see the result) :

<html>
<head>
<!-- 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>
 
J

Janwillem Borleffs

JellyON said:
Do you know about an encryption script which accepts the accentued
characters. I've found the one below (from WebExpert premade scripts),
but when you encrypt "assurément", then reverse the process, you
retrieve "assurment" : the "é" is gone !

One way to preserve this character is to apply escape() before encryption
and to apply unescape() after description.


JW
 
J

Janwillem Borleffs

Janwillem said:
One way to preserve this character is to apply escape() before
encryption and to apply unescape() after description.

Obviously, this should read:

One way to preserve this character is to apply escape() before
encryption and to apply unescape() after *decryption*.


JW
 
J

JellyON

Obviously, this should read:

One way to preserve this character is to apply escape() before
encryption and to apply unescape() after *decryption*.


JW

Hum, effectively. I'll try asap. Thanks Janwillem
 

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,968
Messages
2,570,154
Members
46,702
Latest member
LukasConde

Latest Threads

Top