Melhor método de criptografia android?

Olá, eu estou criando um projeto android que lida com webservice, autenticação de login e etc. Agora eu só preciso lidar com a segurança, gostaria de saber qual o melhor método pra criptografar senhas no android studio porque eu não sei nada sobre criptografia ainda e todas as minhas pesquisas na internet são confusas. Se possível, gostaria também de um exemplo de como implementar

{code type=java}
public class Criptografia {

public static String codificar(String mensagem, String chave) throws Exception {
    byte[] bytemensagem = nullPadString(mensagem).getBytes();
    byte[] bytechave = chave.getBytes();
    Key secretKey = new SecretKeySpec(bytechave, "AES");
    Cipher c = Cipher.getInstance("AES");
    c.init(Cipher.ENCRYPT_MODE, secretKey);
    byte[] cipher = c.doFinal(bytemensagem);
    String codigo = fromHex(cipher);
    return codigo;
}


public static String decodificar(String decmensagem, String chave) throws Exception {
    byte[] bytechave = chave.getBytes();
    Key secretKey = new SecretKeySpec(bytechave,"AES");
    Cipher c = Cipher.getInstance("AES");
    c.init(Cipher.DECRYPT_MODE, secretKey);
    byte[] byteDecodificado = c.doFinal(toHex(decmensagem));
    String mensagem = new String(byteDecodificado);
    return mensagem;
}


private static String nullPadString(String original) {
    StringBuffer output = new StringBuffer(original);
    int remain = output.length() % 16;
    if (remain != 0) {
        remain = 16 - remain;
        for (int i = 0; i < remain; i++) {
            output.append((char) 0);
        }
    }
    return output.toString();
}
public static String fromHex(byte[] hex) {
    StringBuffer sb = new StringBuffer();
    for (int i=0; i < hex.length; i++) {
        sb.append( Integer.toString( ( hex[i] & 0xff ) + 0x100, 16).substring( 1 ) );
    }
    return sb.toString();
}

public static byte[] toHex(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i += 2) {
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                + Character.digit(s.charAt(i+1), 16));
    }
    return data;
}

}
{/code}