• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zabezpieczony folder - problem z kodem

42 Warsaw Coding Academy
0 głosów
119 wizyt
pytanie zadane 22 kwietnia 2017 w Systemy operacyjne, programy przez asdbf123 Początkujący (300 p.)

Witam,

Mam pytanie ściągnąłem z jakiejś strony na internecie kod który blokuje folder (robi go ukrytym).

Kod wygląda tak:

@cls
@ECHO OFF
title Folder Tajne
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Tajne goto MDLOCKER
:CONFIRM
echo Napewno chcesz Zablokowac ten folder??? (TAK/NIE)
set/p "cho=>"
if %cho%==tak goto LOCK
if %cho%==TAK goto LOCK
if %cho%==NIE goto END
if %cho%==nie goto END
echo ERROR.
goto CONFIRM
:LOCK
ren Tajne "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder zablokowany
goto End
:UNLOCK
echo Wpisz haslo do odblokowania folderu
set/p "pass=>"
if NOT %pass%== haslo goto zle
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Tajne
echo Folder Odblokowany Pozytywnie
goto End
:zle
echo Nieprawidlowe haslo
goto end
:MDLOCKER
md Tajne
echo Folder Zalozony pozytywnie
goto End
:End

Czy można zrobić tak, żeby w linijce: 

if NOT %pass%== haslo goto zle

nie było widoczne to hasło podczas edytowania pliku.

 

1 odpowiedź

0 głosów
odpowiedź 22 kwietnia 2017 przez niezalogowany
edycja 22 kwietnia 2017

Jasne, możesz je np trzymać w pliku do którego osoby postronne mogące odczytać skrypt i go użyć nie mogą wejść (ważne: jeżeli ktoś może edytować twój skrypt, to nie musi znać hasła, wystarczy że usunie linie odpowiedzialne za jego weryfikacje i wyskok do "zle")

Lub możesz samo hasło zahashować, a sam hash jawnie trzymać w skrypcie (wtedy porównujesz hashe haseł a nie hasła)

Pseudokod:

  1. Liczymy "na boku" (poza skryptem) hash naszego hasła, np: good_hash = SHA1("supersilnehasło")=45c99e611585a297d8b27fb89f62d1894371f04f
  2. W skrypcie pobieramy hasło i liczymy jego hash:
    1. read pass
    2. hash = SHA1(pass)
  3. Porównujemy hashe: 
    1. if good_hash == hash, then goto ACCESS_GRANTED else goto ACCESS_DENIED

Uwaga! SHA1 zostało wybrane jedynie jako przykład, w praktyce użycie SHA1 do hashowania haseł nie jest dobrym pomysłem

Podobne pytania

+1 głos
1 odpowiedź 419 wizyt
pytanie zadane 28 lipca 2017 w C i C++ przez michal12334 Obywatel (1,510 p.)
0 głosów
0 odpowiedzi 364 wizyt
pytanie zadane 2 maja 2017 w C i C++ przez TheFeniks Gaduła (4,690 p.)
0 głosów
2 odpowiedzi 246 wizyt
pytanie zadane 25 kwietnia 2017 w C i C++ przez krysita Początkujący (280 p.)

93,398 zapytań

142,390 odpowiedzi

322,576 komentarzy

62,756 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...