Tein php:llä kirjautumista vaativan pienen sivuston. Salasana on kryptattu Juha Tauriaisen super_hash() -funktiolla ja tallennettu tietokantaan. Kirjautuessa käyttäjältä kysytään salasanaa, joka kryptataan samalla funktiolla ja verrataan tietokannasta haettuun kryptattuun salasanaan. Jos merkkijonot täsmäävät, käyttäjä päästetään sisään.
Omalla palvelimella tämä toimii hyvin, mutta kun siirsin kaikki tiedostot domainilleni, alkaa super_hash() laskemaan mille tahansa merkkijonolle aivan saman arvon. Näinhän ei tietysti pitäisi olla? Osaisiko kukaan sanoa missä on vika ja neuvoa miten se kannattaisi korjata?
Mitä jos kokeilet käyttää super_hash-funktion sijasta PHP:n omaa md5-funktiota? Sen pitäisi ainakin toimia palvelimesta riippumatta, ja md5-funktio sopii hyvin salasanan hajautusarvon laskemiseen.
Toinen kysymys on, miksi super_hash-funktio ei toimi toisella palvelimella. Funktiossa näkyy olevan kohtia, joissa tutkitaan PHP:n versiota, joten kenties jossain sellaisessa kohdassa on virhe.
Aihe on jo aika vanha, joten et voi enää vastata siihen.