HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Jelszókezelés parancssorban


Példaprogram letöltése

2332 bájt

Ha szkriptből vagy batch fájlból bekérünk egy jelszót, minden beírt karakter látszani fog a képernyőn. Biztonsági szempontból ez igen hátrányos, mivel mások is láthatják. Az alábbiakban bemutatunk egy egyszerű megoldást a probléma kiküszöbölésére, mely a jelszavak gépelésénél nem jeleníti meg a beírt karaktereket, de a háttérben természetesen eltárolja őket.

Mellékeltük az alábbi szkriptet "GetPassword.vbs" néven. Futtatása a "Start.bat" fájllal történik. Funkcióját tekintve bekér egy jelszót - ide írhatunk bármit - közben nem látszanak a leütött karakterek, majd megjeleníti a képernyőn a beírtakat.
A Windows Scripting Host 5.6 (WSH) verziójától kezdve érhető el a parancssori jelszókezelés lehetősége. Ez a verzió a Windows XP és .NET rendszerekben alapértelmezésben megtalálható, de letölthető az Internetről a Microsoft honlapjáról is. Mivel az oldalak tartalma állandóan változik, javasoljuk a kereső használatát.
Egy új COM komponensről van szó, mely a SCRIPTPW.DLL fájlban kapott helyet. Érdekessége, hogy hivatalosan nem része a WSH 5.6 objektummodellnek, de ennek ellenére hibátlanul használható. Egyetlen hátránya, hogy grafikus felületen nem működik csak és kizárólag parancssorban a CSCRIPT.EXE futtató környezetben. Nézzük meg a következő szkriptet, mely bemutatja a használatát:
Első lépésben létre kell hozni egy új "ScriptPW.Password" objektum példányt.
Set objPassword = CreateObject("ScriptPW.Password") 
Megjelenítünk egy szöveget a képernyőn, de nem a szokásos Wscript.Echo eljárással, hanem a szabványos kimenetre (jelen esetben a képernyő) küldve.
WScript.StdOut.Write "Kérem a jelszót:" 
Meghívjuk a "ScriptPW.Password" objektum "GetPassword()" metódusát. Feladata, hogy elnyelje a begépelt karaktereket és eltárolja a megadott változóba (strPassword). A villogó kurzoron kívül mást nem fogunk látni, nem jelennek meg speciális karakterek.
strPassword = objPassword.GetPassword() 
Végül bizonyítandó, hogy valóban megjegyezte a beírt szöveget, kiíratjuk a képernyőre. Az üres sor (Wscript.Echo) valójában csak egy kocsi vissza parancsot jelent ebben az esetben és a szöveg a következő sorban jelenik meg.
Wscript.Echo
Wscript.Echo "A beírt jelszó: " & strPassword
Opcionálisan módosíthatjuk a szkriptet úgy is, hogy a grafikus felületen jelenjen meg a parancssorban megadott jelszó:
Set objPassword = CreateObject("ScriptPW.Password") 
WScript.StdOut.Write "Kérem a jelszót:" 
strPassword = objPassword.GetPassword() 
Wscript.Echo
Msgbox "A beírt jelszó: " & strPassword
Windows 2000 alatt is elérhetővé válnak a fenti funkciók, ha a SCRIPTPW.DLL fájlt átvisszük és regisztráljuk. Windows XP alatt a %systemroot%\system32 könyvtárban találjuk. Másoljuk át a Windows 2000-es gépre és adjuk ki a következő utasítást:
regsvr32 /i scriptpw.dll
A regisztráció sikeres lesz, de a "… DllInstall entry point was not found" hibaüzenetet kapjuk. Nem kell vele foglalkozni, ettől még működik a dolog.


Ha úgy döntünk, hogy már nem kívánjuk használni, eltávolíthatjuk a regisztrációt:
regsvr32 /u scriptpw.dll

Cikksorozat

#IDKategóriaCikk címeSorozat
2668WindowsQoS - Quality of Service bemutatása1. rész
2677WindowsQoS - Quality of Service bemutatása2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2002 évkönyv 685. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |