2016-08-11 1 views
1

À propos du cryptage des mots de passe dans Liferay Je trouve que Liferay est en utilisant PBKDF2WithHmacSHA1/160/128000 algorithme par défaut qui génère 160 hash bits en utilisant 128.000 tours.Comprendre Liferay Mot de passe de chiffrement

Et je peux utiliser les types suivants en les appliquant dans mes portal-ext.properties fichier

#passwords.encryption.algorithm=BCRYPT/10 
#passwords.encryption.algorithm=MD2 
#passwords.encryption.algorithm=MD5 
#passwords.encryption.algorithm=NONE 
#passwords.encryption.algorithm=PBKDF2WithHmacSHA1/160/128000 
#passwords.encryption.algorithm=SHA 
#passwords.encryption.algorithm=SHA-256 
#passwords.encryption.algorithm=SHA-384 
#passwords.encryption.algorithm=SSHA 
#passwords.encryption.algorithm=UFC-CRYPT 

avec le type par défaut « PBKDF2WithHmacSHA1/160/128000 » Je trouve que chaque mot de passe est généré départ avec un préfixe « AAAAoAAB9A » comme: « AAAAoAAB9ACpjEM1K54bHX0UMY + 3AgeAX3n50ZGERRK6MpxC »

Je dois savoir pourquoi que chaque mot de passe commence par ce préfixe en utilisant l'algorithme mentionné.

En utilisant un autre algorithme "Bcrypt/10" j'ai découvert que mes mots de passe commençant par "2a $ 10 $" Comme: "2a $ 10 $ Xyx.o1kv1mIr8rtpr9sxwOP6AC9I/u7tAIlyfrzp8Vlqcek/CGdQ"

Certains comment j'ai compris que "10" dans "$ 2a $ 10" le mot de passe se fait hacher avec un sel avec 10 tours. Est-ce correct ou je me trompe?

+1

bcrypt n'utilise pas de nombre linéaire de ronds/itérations, mais plutôt un facteur de coût logarithmique. En outre, liferay est open source, vous pouvez donc simplement regarder dans le code source. –

+1

vous avez raison; bcrypt (et fondamentalement tous les KDF) ont besoin de connaître les paramètres avant de les exécuter, afin qu'ils sachent quand «arrêter» et comparer. Si cette valeur est constante dans votre système, comme c'est le cas avec la routine pbkdf2, vous pouvez supprimer cette information et la corriger plus tard, mais pourquoi s'en soucier? – dandavis

+0

@efxeekay Vous posez plus d'une question dans un article. S'il vous plaît extraire votre deuxième question dans un nouveau message - il aide les gens à se concentrer sur un problème à la fois. –

Répondre

0

Liferay utilise PBKDF2WithHmacSHA1/160/128000 par défaut, le mot de passe crypté est une combinaison d'octets de « taille de la clé, le nombre de tours, le sel et octets clé secrète » étant placé dans l'ordre dans la ByteBuffer puis Codage Base64 sur la combinaison.

donc la raison pour laquelle il y a un préfixe « AAAAoAAB9A » dans: « AAAAoAAB9ACpjEM1K54bHX0UMY + 3AgeAX3n50ZGERRK6MpxC » est parce que c'est la combinaison de taille de la clé et le nombre de tours (c.-à-160/128000) tampon d'octets qui est codé dans son ensemble en Base64. En changeant la taille de la clé et le nombre de tours, vous aurez un préfixe différent.