diff --git a/src/main/java/fr/xephi/authme/security/HashAlgorithm.java b/src/main/java/fr/xephi/authme/security/HashAlgorithm.java index fb47f7806..7a684a3da 100644 --- a/src/main/java/fr/xephi/authme/security/HashAlgorithm.java +++ b/src/main/java/fr/xephi/authme/security/HashAlgorithm.java @@ -10,6 +10,7 @@ public enum HashAlgorithm { ARGON2(fr.xephi.authme.security.crypts.Argon2.class), BCRYPT(fr.xephi.authme.security.crypts.BCrypt.class), BCRYPT2Y(fr.xephi.authme.security.crypts.BCrypt2y.class), + CMW(fr.xephi.authme.security.crypts.CmwCrypt.class), CRAZYCRYPT1(fr.xephi.authme.security.crypts.CrazyCrypt1.class), IPB3(fr.xephi.authme.security.crypts.Ipb3.class), IPB4(fr.xephi.authme.security.crypts.Ipb4.class), diff --git a/src/main/java/fr/xephi/authme/security/crypts/CmwCrypt.java b/src/main/java/fr/xephi/authme/security/crypts/CmwCrypt.java new file mode 100644 index 000000000..2b94dc038 --- /dev/null +++ b/src/main/java/fr/xephi/authme/security/crypts/CmwCrypt.java @@ -0,0 +1,14 @@ +package fr.xephi.authme.security.crypts; + +import fr.xephi.authme.security.HashUtils; + +/** + * Hash algorithm to hook into the CMS Craft My Website. + */ +public class CmwCrypt extends UnsaltedMethod { + + @Override + public String computeHash(String password) { + return HashUtils.md5(HashUtils.sha1(password)); + } +} diff --git a/src/test/java/fr/xephi/authme/security/crypts/CmwCryptTest.java b/src/test/java/fr/xephi/authme/security/crypts/CmwCryptTest.java new file mode 100644 index 000000000..7c6652db1 --- /dev/null +++ b/src/test/java/fr/xephi/authme/security/crypts/CmwCryptTest.java @@ -0,0 +1,15 @@ +package fr.xephi.authme.security.crypts; + +/** + * Test for {@link CmwCrypt}. + */ +public class CmwCryptTest extends AbstractEncryptionMethodTest { + + public CmwCryptTest() { + super(new CmwCrypt(), + "1619d7adc23f4f633f11014d2f22b7d8", // password + "c651798d2d9da38f86654107ae60c86a", // PassWord1 + "1fff869a744700cdb623a403c46e93ea", // &^%te$t?Pw@_ + "6436230e0effff37af79302147319dda"); // âË_3(íù* + } +}