Firma niedawno użyła extmail+postfix jako rozwiązania do wysyłki. W obecnym systemie OA pracownicy muszą logować się za pomocą swoich legalnych kont podczas logowania się do OA, ale w ten sposób wymagane są co najmniej dwa niezależne konta i hasła, co ma pewien wpływ na efektywność pracy.
Dlatego zdecydowaliśmy się zmodyfikować istniejący mechanizm logowania systemu OA, aby używał tych samych danych do konta i hasła co extmail, co ma tę zaletę, że pracownicy mogą z niego korzystać do logowania się do systemu OA, o ile pamiętają hasło do e-maila, co może znacząco poprawić efektywność pracy.
Po zrozumieniu Extmail używa MySQL do zapisywania informacji o kontach e-mail, a hasło w tabeli skrzynek zapisuje zaszyfrowane hasła, ale extmail obsługuje wiele metod szyfrowania. Szczegóły można sprawdzić ustawienia SYS_CRYPT_TYPE elementu w pliku /var/www/extsuite/extman/webman.cf.
Mój system używa szyfrowania md5crypt, a format hasła to: $1$k0Q4EA49$XXXXXXXXXXXXXXXXXX. Jeśli oryginalne hasło nie jest już zapisane w tabeli skrzynek pocztowych, jak mogę zweryfikować, że użytkownik wpisał hasło poprawnie?
Po wielokrotnym sprawdzaniu użycia funkcji kryptograficznych w instrukcji PHP odkryłem, że Crypt obsługuje różne metody szyfrowania skrótów, więc proszę szczegółowo przeczytaj szczegóły dotyczące zastosowania funkcji kryptograficznych w instrukcji PHP.
MD5crypt posiada SALT, który charakteryzuje się tym, że jest ona zapisana w zaszyfrowanym tekście szyfrogram, czyli symbolu $ i znakach, które zawiera, a sól w powyższym wyniku szyfrowania wynosi $1$k0Q4EA49$, więc implementacja algorytmu szyfrowania w PHP dla oryginalnego hasła jest 123456, a sól to $1$k0Q4EA49$ w następujący sposób:
<?php echo crypt('123456', '$1$k0Q4EA49$');
Output $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.
Gdy poznamy tę zasadę, możemy zintegrować weryfikację informacji o kontach skrzynek pocztowych Extmail z dowolnym naszym systemem.
Dodatkowo, metoda szyfrowania w linuxowych /etc/shadow i grub's md5-crypt jest dokładnie taka sama jak powyższa zasada, jeśli chcesz wymusić zmianę hasła konta na 123456 bez użycia innych narzędzi, możesz ustawić drugie pole odpowiadającego konta w pliku /etc/shadow na $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr. |