Jeśli zapomniałeś/zapomniałaś hasła administratora w Programie Płatnika możesz je łatwo odzyskać (dotyczy to także hasła ostatniej użytej bazy danych).
Uwaga: Misie z firmy Koala (ja nie mam z nimi nic wspolnego!) na podstawie ponizszych informacji napisaly program, ktory odzyskuje hasla Platnika. Programik jest darmowy i mozna go znalezc tutaj: Koala Ratownik
Uwaga: Innym darmowym programem, który potrafi odplątać problemy z Płanikiem jest od-Plątnik autorstwa JBW: od-Plątnik
Hasła trzymane są w rejestrze systemu Windows, hasło administratora w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\PROKOM Software SA\Płatnik\5.01.001\Admin w kolejnych wartościach AdmXX (każda zmiana hasła dodaje 1 wpis, aktualne hasło znajduje się w polu AdmXX o największej wartości XX). Przy instalacji wypełnianych jest kilka wartości początkowych, do Adm1 wpisywana jest aktaulna data, do Adm2 i 3 - imię i nazwisko administratora, do Adm4 początkowe hasło. Przy zmianie hasła do starego dopisywany jest znak '1'. Hasło może mieć maksymalnie 24 znaki.
Hasło bazy danych (ostatniej użytej) znajduje się w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\PROKOM Software SA\Płatnik\5.01.001\Baza, pole Jet OLEDB:Database Password.
Hasla są "zaszyfrowane", to znaczy zakodowane w prosty do odkodowania sposób. Aby odtworzyć hasło możesz skorzystać z formularza albo użyć zamieszczonego niżej skryptu.
Przykładowe hasło wygląda tak: lzpovzyswnvw (w postaci odkodowanej - "haslo2")
Tip 1: informacja otrzymana od EMPI'ego: można zwalczyć wymuszanie zmiany hasła co miesiąc ustawiając w kluczu HKLM\SOFTWARE\PROKOM Software SA\Płatnik\6.01.001\Parametry\LimitHasła większa liczbę dni ważności hasła (domyślnie jest 30).
Tip 2: usuwanie haseł baz MS Access (czyli to właśnie Cię interesuje jeśli np. przeinstalowałeś system a teraz nie pamiętasz haseł do bazy płatnika)
Tip 3: jeśli wydaje ci się, że znasz hasło do bazy, a mimo to Płatnik nie chce otworzyć bazy danych - sprawdź czy plik .mdb nie ma ustwionego atrybutu "tylko do odczytu"
Tip 4: Skrypty przerobione na C++: http://www.manobit.com/platnik-haslo/
| dekodowanie hasła: | |
| kodowanie hasła: |
#!/usr/bin/perl -w
# mg@fork.pl
# https://platnik.fork.pl/
# https://github.com/marcin-gryszkalis/platnik/
use warnings;
use strict;
use Data::Dumper;
my $enc = shift;
sub swap($$)
{
$_ = shift;
my $n = shift;
s/(.{$n})(.{$n})/$2$1/g;
return $_;
}
my $k = "lmnopqrstuvwxyz{";
my @pkey = (
swap($k, 8),
swap(swap($k, 4), 1),
swap(swap($k, 8), 1),
swap($k, 1),
swap($k, 4),
swap($k, 2),
swap(swap($k, 2), 1),
swap(swap(swap($k, 4), 2), 1),
);
my @order = (
0,1,2,3,4,0,3,5,
2,1,5,4,3,6,6,2,
4,2,2,4,3,2,7,7,
);
my $i = 0;
sub dec($$)
{
my $a = index $pkey[$order[$i % 24]], shift;
my $b = index $pkey[$order[$i % 24]], shift;
$i++;
return chr hex sprintf "%x%x",$b,$a;
}
$enc =~ s/[^$k]//g;
$enc =~ s/(.)(.)/dec($1,$2)/ge;
print "$enc\n";
#!/usr/bin/perl -w
# mg@fork.pl
# https://platnik.fork.pl/
# https://github.com/marcin-gryszkalis/platnik/
use strict;
use warnings;
my $enc = shift;
sub swap($$)
{
$_ = shift;
my $n = shift;
s/(.{$n})(.{$n})/$2$1/g;
return $_;
}
my $k = "lmnopqrstuvwxyz{";
my @pkey = (
swap($k, 8),
swap(swap($k, 4), 1),
swap(swap($k, 8), 1),
swap($k, 1),
swap($k, 4),
swap($k, 2),
swap(swap($k, 2), 1),
swap(swap(swap($k, 4), 2), 1),
);
my @order = (
0,1,2,3,4,0,3,5,
2,1,5,4,3,6,6,2,
4,2,2,4,3,2,7,7);
my $i = 0;
sub enc($)
{
my $c = ord shift;
my $a = $c & 0xf;
my $b = $c >> 4;
$a = substr($pkey[$order[$i % 24]], $a, 1);
$b = substr($pkey[$order[$i % 24]], $b, 1);
$i++;
return "$a$b";
}
$enc =~ s/(.)/enc($1)/ge;
print "$enc\n";