[js] prosty 'skrypt logowania' 13189 1

O temacie

Autor Tasilvar

Zaczęty 14.10.2009 roku

Wyświetleń 13189

Odpowiedzi 1

Tasilvar

Tasilvar

Użytkownicy
zwykły user
posty264
Propsy17
ProfesjaSkrypter
  • Użytkownicy
  • zwykły user

Tasilvar

[js] prosty 'skrypt logowania'
2009-10-14, 11:46(Ostatnia zmiana: 2009-10-14, 11:51)
Witam, czytając trochę o  javascripcie zabrałem się za tworzenie prostego skryptu wymagającego od użytkownika podania konkretnego loginu i hasła aby wejść na stronę.
Jednak mam 2 problemy.
Po pierwsze w przypadku gdy wpiszemy zle haslo bądz login to gdy pojawi się nam alert ze popelnilismy blad przy wpisyaniu danych to aby ten kumunikat był ciągły, zeby po kliknieciu 'ok' nastapilo ponowne wywolanie tego alerta.
Druga sparwa, nie wiem czy sie da aby zmienne przechowywaly wartosc hasła i nicku 'w ukryciu' zeby nie mozna bylo tego kodu podejrzec?


var nick = " ";
var haslo = " ";


nick=prompt("Nick: " +nick);
haslo=prompt("Hasło: " +haslo);

if (nick == "nick" && haslo == "123")
{
alert("Witamy");

 }
 else
 {
 alert("Błędny login lub hasło");
/*pętla /*
 }

Proszę o pomoc...
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

[js] prosty 'skrypt logowania'
#1 2009-10-14, 13:37(Ostatnia zmiana: 2009-10-14, 13:38)
Za pomocą samego kodu JavaScript nie da się "ukryć" hasła, ale są sposoby jego szyfrowania, na tyle skomplikowane że od razu zniechęcają każdego kto spróbowałby przeprowadzić je w drugą stronę, jednak nawet one są teoretycznie do obejścia.
Podam ci jeden z najlepszych jakie znalazłem, jest to kod samego panelu administracyjnego za pomocą którego wygenerujesz gotową stronę logującą zawierającą zaszyfrowane dane użytkowników. Jest to moje własne bardzo stare tłumaczenie, nie pamiętam skąd ściągnąłem oryginał.
[codebox]<HTML>
<HEAD>

</HEAD>
<BODY>
<center><table border=1>
<tr><form name=members><td rowspan=4>
<select name=memlist size=10 onChange="showmem(this.form)">

<!--homepage login system-->

<option selected value="Admin|xxxxxxxx|adminpan|">Admin (admin)
<option value="Gość|anonimow|homepage|">Gość
<option value="Abcd Efghij|abcdefgh|homepag1|">Abcd Efghij
</select></td>
<td align=right>Użytkownik:</td><td><input type=hidden value="0" name=entry>
<input type=text name=memname size=8 value=""></td></tr>
<tr><td align=right>Hasło:</td><td><input type=text name=password size=8 maxlength=8><font size="-1"></font></td></tr>
<tr><td align=right>Strona użytkownika</td><td><input type=text name=pagename size=8 maxlength=8><b>.html</b><font size="-1"></font></td></tr>
<tr><td colspan=2 align=center>
<input type=button value="Nowy użytkownik" onclick="addnew(this.form);">
<input type=button value="Usuń użytkownika" onclick="delthis(this.form);">
<input type=button value="Odśwież/pokaż kod" onclick="update(this.form); create(this.form);"></td></tr>
<tr><td colspan=3 align=center>
<input type=text size=60 name=message value="Uwaga:Hasło musi mieć 8 liter (a-z)">
<input type=hidden name=num value=1></td>
</form></tr>
</table>
<hr size=2 width=75%>
<form name=js><textarea cols=75 rows=10 name=scrpt wrap=virtual>
<script LANGUAGE="JavaScript">
<!-- Begin
var params=new Array(4);
var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI";
function check(form) {
which=form.memlist.selectedIndex;
choice = form.memlist.options[which].value+"|";
if (choice=="x|") {
alert("Wybierz swoją nazwę użytkownika");
return;
}
p=0;
for (i=0;i<3;i++) {
a=choice.indexOf("|",p);
params=choice.substring(a,p);
p=a+1;
}
h1=makehash(form.pass.value,3);
h2=makehash(form.pass.value,10)+" ";
if (h1!=params[1]) {
alert("Złe hasło!"); return; };
var page="";
for (var i=0;i<8;i++) {
letter=params[2].substring(i,i+1)
ul=letter.toUpperCase();
a=alpha.indexOf(ul,0);
a-=(h2.substring(i,i+1)*1);
if (a<0) a+=26;
page+=alpha.substring(a,a+1); };
top.location=page.toLowerCase()+".html";
}
function makehash(pw,mult) {
pass=pw.toUpperCase();
hash=0;
for (i=0;i<8;i++) {
letter=pass.substring(i,i+1);
c=alpha.indexOf(letter,0)+1;
hash=hash*mult+c;
}
return(hash);
}
// End -->
</script>
</textarea>
</form>
<script LANGUAGE="JavaScript">
<!-- Begin
var params=new Array(4);
var script=document.js.scrpt.value;
document.js.scrpt.value="\n\n\n\n               ..:::Kod HTML skryptu logującego:::..";
var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI";
showmem(document.members);
function showmem(form) {
document.members.num.value=document.members.memlist.length;
var which=form.memlist.selectedIndex;
splt(form.memlist[which].value);
form.entry.value=which+1;
for (i=2;i<5;i++) {
form.elements.value=params[i-2]; };
}
function splt(choice) {
p=0;
for (i=0;i<3;i++) {
a=choice.indexOf("|",p);
params=choice.substring(a,p);
p=a+1;
   }
}
function addnew(form) {
newmem=getfields(form);
var who=prompt("Nazwa nowego użytkownika:","");
form.memlist[form.memlist.length] = new Option(who, newmem, false, true);
if (navigator.appName=="Netscape") {
document.js.scrpt.value=script;
history.go(0);
}
else {
showmem(document.members);
   }
}
function getfields(form) {
newmem="";
for (i=2;i<5;i++) {
newmem+=form.elements.value+"|"; };
for (i=3;i<5;i++) {
a=form.elements;
for (k=0;k<8;k++) {
   }
}
return(newmem);
}
function delthis(form) {
if (confirm("Skasować użytkownika: "+form.memname.value+"?")) {
form.memlist.options[form.entry.value-1]=null;
form.message.value=form.memname.value+" Deleted";
form.memlist.selectedIndex=0;
if (navigator.appName=="Netscape") {
document.js.scrpt.value=script;
history.go(0);
}
else {
showmem(document.members);
      }
   }
}
function update(form) {
msg="no";
a=form.elements;
for (k=0;k<8;k++) {
b=a.value.substring(k,k+1);
c=b.toUpperCase();
form.memlist[form.entry.value-1].value=getfields(form);
form.message.value=form.memname.value+" - dane użytkownika uaktualnione";
   }
}
function create(form) {

var html="<center><form name=login>\n";
html+="<table border=1 cellpadding=3>\n\n";
html+='<tr><td colspan=2 align=center><font size="+2">';
html+='<b>Logowanie</b></font></td></tr>\n';
html+="<tr><td>Użytkownik:</td><td><select name=memlist>\n<option value='x'>";
for (j=0;j<form.memlist.length;j++) {
splt(form.memlist.options[j].value);
h1=makehash(params[1],3);
h2=makehash(params[1],10)+" ";
var page="";
for (var i=0;i<8;i++) {
letter=params[2].substring(i,i+1);
ul=letter.toUpperCase();
a=alpha.indexOf(ul,0);
a+=(h2.substring(i,i+1)*1);
page+=alpha.substring(a,a+1);
}
html+="\n<option value='"+params[0]+"|"+h1+"|"+page+"'>"+params[0];
};
html+="\n</select></td></tr>\n";
html+="<tr><td>Hasło:</td><td><input type=password size=10 maxlength=8 name=pass></td></tr>\n";
html+='<tr><td colspan=2 align=center><input type=button value="Zaloguj" onclick="check(this.form)"></td>\n';
html+="</tr>\n</table>\n</form>\n";
document.js.scrpt.value=html+script+"</center>";
}
function makehash(pw,mult) {
pass=pw.toUpperCase();
hash=0;
for (i=0;i<8;i++) {
letter=pass.substring(i,i+1);
c=alpha.indexOf(letter,0)+1;
hash=hash*mult+c;
}
return(hash);
}
// End -->
</script>
</center>



</BODY>
</HTML>[/codebox]


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry