Получить уникальное целочисленное значение из строки
У меня есть разные уникальные строки в одном формате. Строка выглядит так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;
}