"Mette" <nospam@nospam.dk> writes:
> jeg har dette script til at lave en kodet email om til en normal email, med
> jeg har ikke den modsatte kode.
Først og fremmest: Det er helt vildt overkill, hvis det eneste du vil er
at gemme adressen fra spammerenes adressehøstere. Og ellers snyder det
ikke ret mange, når dekoderfunktionen jo er med i siden.
> Er der en, der har koden???
Lad mit se på det.
> <script type="text/javascript" language="javascript">
("Language"-attributten er ikke nødvendig. Den er "deprecated" i HTML
4, så det anbefales at man nøjes med "type")
> <!--
HTML-kommentarer er ikke nødvendige i Javascript.
> //Encrypted emailaddress version 3.0 2003 Dansoft Denmark - freeware
>
> var PrivatKey = "sdfg@ABCDE.PI";
Her bliver jeg nervøs, fordi PrivatKey skulle være nøglen der
oversætter den modsatte vej af PublicKey. Det skulle ikke være teksten
der skal krypteres. Altså stoler jeg ikke på ham der har lavet det her,
hvis han ikke engang kan holde terminologien korrekt.
> var PublicKey =
> "ZaYbXcWdVeUfTgShRiQjPkOlNmMnLoKpJqIrHsGtFuEvDwCxByAz1234567890";
Ok, en streng der indeholder alle bogstaver, store og små, og alle
tal. Lyder som en simpel ombytnings-kodning.
> var PrivatKeySize = PrivatKey.length;
> var LinkString = "";
> var PublicPointer = "";
> for (Counter = 0; Counter < PrivatKey.length; Counter++)
> {
> if (PublicKey.indexOf(PrivatKey.charAt(Counter))==-1)
> {
> PublicPointer=PrivatKey.charAt(Counter);
> LinkString+=(PublicPointer);
Hvis tegn nummer <Counter> ikke er i PublicKey, så tilføj den
direkte.
> }
> else
> {
> PublicPointer = (PublicKey.indexOf(PrivatKey.charAt(Counter))-
> PrivatKeySize+PublicKey.length) % PublicKey.length;
ellers find tegnets index i publickey, træk PrivatKeySize fra,
og tag modulus med PubliKey's længde. (Den +PublicKey.length,
er for det tilfælde at minus-udtrykket bliver negativt - men
det virker kun hvis PrivatKey er kortere end PublicKey, ellers
går det galt.)
Ret linjen til:
PublicPointer = (PublicKey.indexOf(PrivatKey.charAt(Counter))-
(PrivatKeySize%PublicKey.length)+PublicKey.length) % PublicKey.length;
.... så virker den også hvis PrivateKey er længere end PublicKey.
> LinkString += (PublicKey.charAt(PublicPointer));
>
> }
> }
> document.write("<a href='mailto:"+LinkString+"'>"+LinkString+"")
Og så skriver vi en e-mail-adresse der ikke virker på siden. Hvor
smart er det? :)
Ok, så idéen må være at den e-mail-adresse der står i PrivateKey
allerede *er* krypteret, så den bliver dekrypteret af siden og vist
rigtigt.
Den funktion der krypterer må så være:
---
function encrypt(data) {
var key = "ZaYbXcWdVeUfTgShRiQjPkOlNmMnLoKpJqIrHsGtFuEvDwCxByAz1234567890";
var dataLength = data.length;
var encData = [];
for(var i=0;i<dataLength;i++) {
var char = data.charAt(i);
var idx = key.indexOf(char);
if (idx == -1) {
encData[encData.length]=char;
} else {
var encChar = key.charAt((idx + dataLength) % key.length);
// forskellen er ^ + i stedet for -
encData[encData.length]=encChar;
}
}
return encData.join("");
}
---
Hvis du tager din e-mail-adresse og sender den igennem "encrypt", og
så bruger outputtet som PrivateKey, så vil din rigtige adresse komme
til at stå på siden ... hvis brugeren altså har javascript slået til.
Det regnes normalt ikke som en god idé at folk uden javascript ikke
kan bruge siden ordentligt. Det gælder lidt over 10% af alle folk der
browsede, i den statistik jeg så sidst.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'