Het bedrijf heeft onlangs extmail+postfix gebruikt als mailingoplossing. In het bestaande OA-systeem moeten werknemers inloggen met hun legale accounts bij het inloggen op OA, maar op deze manier zijn minstens twee onafhankelijke accounts en wachtwoorden vereist, wat een zekere invloed heeft op de werkefficiëntie.
Daarom besloten we het bestaande OA-systeem voor inloggegevens aan te passen zodat het dezelfde account- en wachtwoordinformatie gebruikt als extmail, wat het voordeel heeft dat medewerkers ermee kunnen inloggen op het OA-systeem zolang ze het e-mailwachtwoord onthouden, wat de werkefficiëntie aanzienlijk kan verbeteren.
Na begrip gebruikt extmail mysql om e-mailaccountinformatie op te slaan, en het wachtwoord van de mailboxtabel slaat de versleutelde wachtwoordinformatie op, maar extmail ondersteunt meerdere encryptiemethoden; voor details kun je de instellingen van het SYS_CRYPT_TYPE item controleren in het bestand /var/www/extsuite/extman/webman.cf.
Mijn systeem gebruikt md5crypt-encrypt en het wachtwoordformaat is: $1$k0Q4EA49$XXXXXXXXXXXXXXXXXXXXX. Als het originele wachtwoord niet meer in de mailboxtabel staat, hoe kan ik dan verifiëren dat de gebruiker het wachtwoord correct heeft ingevoerd?
Na herhaaldelijk het gebruik van cryptfuncties in de PHP-handleiding te hebben gecontroleerd, ontdekte ik dat crypt verschillende hash-encryptiemethoden ondersteunt; lees alsjeblieft het specifieke gebruik van cryptfuncties in de PHP-handleiding in detail.
MD5crypt heeft een salt, dat wordt gekenmerkt doordat dit salt wordt geregistreerd in de versleutelde ciphertext, dat wil zeggen het $-symbool en de tekens die het bevat, en het salt in het bovenstaande encryptieresultaat is $1$k0Q4EA49$, dus de PHP-implementatie van het encryptie-algoritme voor het oorspronkelijke wachtwoord is 123456 en het salt is $1$k0Q4EA49$ als volgt:
<?php echo crypt('123456', '$1$k0Q4EA49$' );
Output $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.
Zodra we dit principe kennen, kunnen we de verificatie van de mailboxaccountinformatie van extmail integreren in elk van onze systemen.
Daarnaast is de encryptiemethode van linux's /etc/shadow en grub's md5-crypt exact hetzelfde als het bovenstaande principe; als je het wachtwoord van een account gedwongen naar 123456 wilt veranderen zonder andere tools te gebruiken, kun je het tweede veld van het overeenkomstige account in het /etc/shadow-bestand instellen op $1$k0Q49$WcjktPPYOSyhI77n8BPPr. |