Компанията наскоро използва extmail+postfix като решение за изпращане на поща. В съществуващата OA система служителите трябва да влизат с легалните си акаунти при влизане в OA, но по този начин са необходими поне два независими акаунта и пароли, което има определено влияние върху ефективността на работата.
Затова решихме да модифицираме съществуващия механизъм за вход в системата OA да използва същата информация за акаунта и паролата като extmail, което има предимството, че служителите могат да го използват за влизане в системата OA, стига да помнят паролата за имейл, което значително подобрява ефективността на работата.
След като разберете, extmail използва mysql, за да запази информация от имейл акаунта, а паролата на таблицата за пощенска кутия запазва криптираната парола, но extmail поддържа множество методи за криптиране. За подробности можете да проверите настройките на SYS_CRYPT_TYPE елемент във файла /var/www/extsuite/extman/webman.cf.
Моята система използва криптиране md5crypt, а форматът на паролата е: $1$k0Q4EA49$XXXXXXXXXXXXXXXXXXXXX. Ако оригиналната парола вече не е записана в таблицата на пощенските кутии, как мога да потвърдя, че потребителят е въвел паролата правилно?
След многократна проверка на използването на crypt функции в PHP ръководството, открих, че crypt поддържа различни методи за хеш криптиране, моля, прочетете подробно конкретната употреба на crypt функциите в PHP ръководството.
MD5CRYPT има сол, която се характеризира с факта, че тази сол се записва в криптиран шифротекст, тоест символът $ и съдържащите в него символи, а солта в горния резултат за криптиране е $1$k0Q4EA49$, така че PHP имплементацията на алгоритъма за криптиране за оригиналната парола е 123456, а солта е $1$k0Q4EA49$, както следва:
<?php echo crypt ('123456', '$1$k0Q4EA49$' );
Изход $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.
След като узнаем този принцип, можем да интегрираме проверката на информацията за пощенската кутия на extmail във всяка от нашите системи.
Освен това, методът на криптиране на linux /etc/shadow и md5-crypt на grub е точно същият като горния принцип – ако искате насилствено да смените паролата на акаунт на 123456 без да използвате други инструменти, можете да зададете второто поле на съответния акаунт във файла /etc/shadow на $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr. |