### Question:
CommonUtils { public static String decodePassword(String password) { if (StringUtils.isEmpty(password)) { return StringUtils.EMPTY; } boolean encryptionEnable = PropertyUtils.getBoolean(Constants.DATASOURCE_ENCRYPTION_ENABLE, false); if (!encryptionEnable) { return password; } String salt = PropertyUtils.getString(Constants.DATASOURCE_ENCRYPTION_SALT, Constants.DATASOURCE_ENCRYPTION_SALT_DEFAULT); String passwordWithSalt = new String(BASE64.decode(password), StandardCharsets.UTF_8); if (!passwordWithSalt.startsWith(salt)) { logger.warn("There is a password and salt mismatch: {} ", password); return password; } return new String(BASE64.decode(passwordWithSalt.substring(salt.length())), StandardCharsets.UTF_8); } private  CommonUtils(); static String getSystemEnvPath(); static boolean isDevelopMode(); static boolean getKerberosStartupState(); static void loadKerberosConf(); static String encodePassword(String password); static String decodePassword(String password);  }### Answer:
@Test public void decodePassword() { PropertyUtils.setValue(Constants.DATASOURCE_ENCRYPTION_ENABLE, "true"); Assert.assertEquals("", CommonUtils.decodePassword("")); Assert.assertEquals("123456", CommonUtils.decodePassword("IUAjJCVeJipNVEl6TkRVMg==")); Assert.assertEquals("!QAZXSW@", CommonUtils.decodePassword("IUAjJCVeJipJVkZCV2xoVFYwQT0=")); Assert.assertEquals("5dfger(@", CommonUtils.decodePassword("IUAjJCVeJipOV1JtWjJWeUtFQT0=")); PropertyUtils.setValue(Constants.DATASOURCE_ENCRYPTION_ENABLE, "false"); Assert.assertEquals("", CommonUtils.decodePassword("")); Assert.assertEquals("123456", CommonUtils.decodePassword("123456")); Assert.assertEquals("!QAZXSW@", CommonUtils.decodePassword("!QAZXSW@")); Assert.assertEquals("5dfger(@", CommonUtils.decodePassword("5dfger(@")); }