Yritys käytti äskettäin extmail+postfixiä postitusratkaisuna. Nykyisessä OA-järjestelmässä työntekijöiden on kirjauduttava sisään laillisilla tileillään kirjautuessaan OA:han, mutta näin vaaditaan vähintään kaksi itsenäistä tiliä ja salasanaa, mikä vaikuttaa työtehokkuuteen.
Siksi päätimme muokata olemassa olevaa OA-järjestelmän kirjautumismekanismia käyttämään samoja tili- ja salasanatietoja kuin extmailissa, mikä on etuna siinä, että työntekijät voivat kirjautua OA-järjestelmään niin kauan kuin he muistavat sähköpostin salasanan, mikä voi merkittävästi parantaa työn tehokkuutta.
Ymmärryksen jälkeen extmail tallentaa sähköpostitilitiedot mysql:llä, ja postilaatikkotaulukon salasana tallentaa salatut salasanatiedot, mutta extmail tukee useita salausmenetelmiä. Lisätietoja varten voit tarkistaa SYS_CRYPT_TYPE kohteen asetukset tiedostosta /var/www/extsuite/extman/webman.cf.
Järjestelmäni käyttää md5crypt-salausta, ja salasanan muoto on: $1$k0Q4EA49$XXXXXXXXXXXXXXXXXX. Jos alkuperäinen salasana ei enää ole tallennettu postilaatikkotaulukkoon, miten voin varmistaa, että käyttäjä syötti salasanan oikein?
Tarkistettuani toistuvasti kryptofunktioiden käyttöä PHP-käsikirjasta huomasin, että crypt tukee monenlaisia hash-salausmenetelmiä, lue tarkemmin PHP-käsikirjasta kryptin käyttötavat.
md5cryptissä on suola, jolle on ominaista se, että tämä suola on tallennettu salattuun salatekstiin, eli $-symboliin ja sen sisältämiin merkkeihin, ja yllä olevan salaustuloksen suola on $1$k0Q4EA49$, joten alkuperäisen salasanan salausalgoritmin PHP-toteutus on 123456 ja suola on $1$k0Q4EA49$ seuraavasti:
<?php echo crypt('123456', '$1$k0Q4EA49$');
Tulostus $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.
Kun tiedämme tämän periaatteen, voimme integroida extmailin postilaatikkotilitietojen varmennuksen mihin tahansa järjestelmiimme.
Lisäksi Linuxin /etc/shadow ja grubin md5-cryptin salausmenetelmä on täsmälleen sama kuin yllä mainittu periaate; jos haluat pakottaa tilin salasanan 123456 ilman muita työkaluja, voit asettaa vastaavan tilin toisen kentän /etc/shadow-tiedostossa arvoon $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr. |