---
title: "Hur säkert är mitt skydd??"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/17890-hur-säkert-är-mitt-skydd"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "ElinPelin"
published: "2001-06-18T14:30:00.000Z"
updated: "2001-06-19T14:30:00.000Z"
replies: 4
views: 264
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/17890-hur-säkert-är-mitt-skydd"
---

# Hur säkert är mitt skydd??

## #1 — ElinPelin, 2001-06-18T14:30Z

Tjofaderittan. 
Tänkte jag skulle ha ett lösenordsskydd på min hemsida, men innan jag använder det så vill jag veta hur säkert det är och hur man eventuellt gör för att gå runt det. 

Skriptet ligger som en extern .js och åberopas av tex en länk ( a href="javascript:Check()" ) 

Så här ser scriptet ut: 
Som jag fattat det skall det jag skriver in bli samma som summan längst ner (15103650) och då flyttas jag till en shtml-fil med samma namn som lösenordet ??? 
1: Hur lätt är det för en utomstående att knäcka detta lösenordet? 
2: Hur går man tillväga? 
3: Vilket lösenord har jag satt i detta scriptet? 

Lycka till!!! 
/elin 

var base= new 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","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") 
var pass="" 
var z=23; 
var y=28; 
var f= new Array(); 
var K= new Array(); 
for (x=0; x\<10; x++){ 
f\[x\]=x\<\<9 
f\[x\]+=23 
} 
for (x=10; x\<36; x++){ 
y=y\<\<1 
v= Math.sqrt(y) 
v = parseInt(v,16) 
v+=5 
f\[x\]=v 
y++ 
} 
for (x=36; x\<62; x++){ 
z=z\<\<1 
v= Math.sqrt(z) 
v = parseInt(v,16) 
v+=74 
f\[x\]=v 
z++ 
} 
var iCounter = 3 //How many retries 
function inc(){ 
iCounter-- 
if (iCounter \> 0) 
{ 
if (confirm("\\nFel lösenord.\\n\\n\\n\\nFörsök igen.")) 
Check() 
else 
alert('Fel lösenord.'); 
history.go(-1); 

} 
else 
alert('Tre misslyckade försök. SLUT.'); 
history.go(location.href='apapap.htm'); 

// You may use this element istead if you want. 
// location.href='denied.html' // 3 times incorrect html file 

} 
function Check(){ 
pass = prompt("Skriv ditt lösenord.","") 
if(pass==null &#0124;&#0124; pass==""){ 
history.go(location.href='apapap.htm')} 
else{ 
var lpass=(pass.length)+1 
for (l=1; l\<lpass; l++){ 
K\[l\]=pass.charAt(l) 
} 
var code=0; 
for (y=1; y\<lpass; y++){ 
for(x=0; x\<62; x++){ 
if (K\[y\]==base\[x\]){ 
code+=f\[x\] 
code\*=y 
} 
} 
} 

\<!-- STEP TWO: Put access code here! --\> 
if (code==15103650)       // code==\[your access code\] 

go() 
else 
inc() 
} 
} 
function go(){ 
location.href=pass+".shtml"; 
}

Permalänk: https://www.webforum.nu/p/17890

## #2 — Jojoxx, 2001-06-18T16:08Z

\>1: Hur lätt är det för en utomstående att knäcka detta lösenordet? 

För en person utan programmeringskunnande så är det tämligen svårt. Annars är det bara en fråga om tid.

\>2: Hur går man tillväga? 

Det enklaste sättet är att skriva ett program där du inkluderar samma kodvalidering. Sedan matar du den via en loop där du testar med "0", "1" osv. upp till "Z", sedan börjar du om med "00" till "ZZ", sedan "000" osv. Det ser även ut som detta script kan generera "rätt" på fler än 1 kombination, så du kommer att få ett antal olika kombinationer att testa på den riktiga sidan.

\>3: Vilket lösenord har jag satt i detta scriptet? 

Som sagt, antagligen finns det flera möjliga lösenord. Men du förstår säkert ovanstående resonemang.

\---Tillägg---
Nackdelen med denna typ av script (klientsides-script) är alltså att nyckeln är läsbar av användaren. Hade du det som ett serverside-script hade du kunnat se till att låsa ute användaren ute för en timme exempelvis efter 5 felaktiga försök (baserat på IP-nummer). På så vis skulle det ta oändligt lång tid att testa, och du skulle via en log vidta åtgärder för att spåra hackern.

Permalänk: https://www.webforum.nu/p/333593

## #3 — Chainsaw, 2001-06-18T17:53Z

Jag skulle gissa på fem minuter, plus den tid det tar att skriva ett program som knäcker det hela (totalt kanske en halvtimme).

Permalänk: https://www.webforum.nu/p/333594

## #4 — Engine^, 2001-06-19T14:26Z

Det skulle bli lite svårare om du även använde dig av MicroSofts ScriptEncoder (eller vad den nu hette)... det krypterar iaf din .js-fil, men det innebär också att du måste kryptera om filen varje gång du vill göra en ändring i den.

Som sagt ovan, så är det svårt med säkerheten med klientscript...

Permalänk: https://www.webforum.nu/p/333595

## #5 — Johnsen, 2001-06-19T14:30Z

Jag skulle vilja hävda att det med hjälp av din javascript-logaritm inte går att räkna ut det exakta lösenordet. Dels för att, som jojoxx sa, det finns flera kombinationer som genererar: 15103650, men oxå för att det inte spelar någon roll vilken första karaktär man väljer i sitt lösenord.
Ex: lösenord: a1 ger code: 535, liksom b1, c1 och tillochmed @1.

Sedan talar inte konde om ifall man får använda / eller inte, men det kan man ju givetvis och på så sätt hamna i en annan mapp på servern.

Dock, man kan använda koden för att räkna ut tänkbara alternativ.
Det slipper man helt om man skippar all valideringskod och går direkt på pudelns kärna:

```
pass = prompt("Skriv ditt lösenord.","");
location.href = pass+ ".shtml";
```

Ovanstående kod skulle vara mycket säkrare (förutsatt att din server är säker).

\------------------
\- J-O-H-N-S-E-N -

Permalänk: https://www.webforum.nu/p/333596

---

Tråden på webben: https://www.webforum.nu/amne/javascript/17890-hur-säkert-är-mitt-skydd
