Получить уникальное целочисленное значение из строки

У меня есть разные уникальные строки в одном формате. Строка выглядит такaxf25!j&809>-11~dc и я хочу получить уникальное целочисленное значение из этой строки.Каждый раз это значение должно быть одинаковым и зависит от строки. Я попытался преобразовать каждый символ строки в int, а затем я суммирую символы друг с другом. Но в случае, если у меня есть 2 строки с одинаковым набором символов, он возвращает целочисленные значения, которые равны друг другу. Так что меня это не устраивает. Как я могу генерировать уникальное целочисленное значение из уникальной строки?

ОБНОВИТЬ:

Рассмотрев все приведенные решения, я решил создать функцию, которая генерирует уникальные целочисленные значения. Я надеюсь, что это исключает столкновения.

public int getUniqueInteger(String name){
    String plaintext = name;
    int hash = name.hashCode();
    MessageDigest m;
    try {
        m = MessageDigest.getInstance("MD5");
        m.reset();
        m.update(plaintext.getBytes());
        byte[] digest = m.digest();
        BigInteger bigInt = new BigInteger(1,digest);
        String hashtext = bigInt.toString(10);
        // Now we need to zero pad it if you actually want the full 32 chars.
        while(hashtext.length() < 32 ){
          hashtext = "0"+hashtext;
        }
        int temp = 0;
        for(int i =0; i<hashtext.length();i++){
            char c = hashtext.charAt(i);
            temp+=(int)c;
        }
        return hash+temp;
    } catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return hash;
}

Ответы на вопрос(5)

Ваш ответ на вопрос