Implémentation C# de phpass

Voici une petite implémentation de phppass en C#. Phpass est un framework de hashing largement utilisé sur le web, notamment dans les systèmes phpbb, WordPress, Vanilla, Drupal, bbPress ou encore intégré a des modules tels que mod_auth_mysql pour apache.

Voici le code source : http://pastebin.com/XHNV9CT3

Il suffit de copier/coller et l’utiliser de la façon suivante par exemple :

Authentifier a partir d’un password clair :

        /// <summary>
        /// Authenticate the user
        /// </summary>
        /// <param name="passed">Clear text password.</param>
        /// <param name="stored">DB stored hash</param>
        /// <returns>True if the password is correct, False otherwise.</returns>
        static bool ClearAuth(string passed, string stored)
        {
            // Creation of the Cryptographic provider
            phpBBCryptoServiceProvider cPhpBB = new phpBBCryptoServiceProvider();

            // Compare the password and the hash
            return cPhpBB.phpbbCheckHash(passed, stored);
        }

Juste générer un hash (pour envoi a un serveur qui fera l’authentification par exemple)

        /// <summary>
        /// Get a Hash
        /// </summary>
        /// <param name="password">Clear text password.</param>
        /// <returns>Hashed password</returns>
        static string JustHash(string password)
        {
            // Creation of the Cryptographic provider
            phpBBCryptoServiceProvider cPhpBB = new phpBBCryptoServiceProvider();

            // Generate the Hash and return it
            return cPhpBB.phpbb_hash(password);
        }

Homepage du projet phpass : http://www.openwall.com/phpass/
Implementation C# : http://pastebin.com/XHNV9CT3

5 thoughts on “Implémentation C# de phpass

    1. manu404 Post author

      Si, le check ‘GivenPasswordHash == StoredPasswordHash For GivenUserName’ peut. Mais le hachage du password me semble difficilement refactorable en store. proc. :/

      Reply
      1. Emmanuel Istace Post author

        Et surtout cela signifierais que le pwd est envoyé en clair au serveur… bof bof…
        (Ce qui est fait ici reviens à hasher avec du javascript un pwd pour ensuite l’envoyer au script php situé sur le serveur)

  1. yazid

    Bonjour,
    Y’a t-il une implémentation équivalente au hachage de WordPress (wp-password-hash) dans le c#.
    J’ai testé votre implémentation et ne marche pas avec WordPress

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s