Une Chaîne de fonction de hachage

Je veux obtenir une unique représentation numérique d'une Chaîne de caractères. Je sais qu'il ya beaucoup de façons de le faire, ma question est qui pensez-vous est le meilleur? Je ne veux pas avoir des nombres négatifs - de sorte que le hashcode() en java n'est pas très bon, bien que je puisse le remplacer ... mais je préfère ne pas depuis que je ne suis pas si confiant et ne veux pas casser accidentellement quelque chose.

Mes Chaînes sont tous sémantique web URI. La raison de la représentation numérique, c'est que lorsque j'affiche les données pour une URI sur une page j'ai besoin de quelque chose pour passer dans la Chaîne de requête ou de les mettre dans les divers champs dans mon javascript. L'URI lui-même est trop lourd et est de mauvaise qualité, quand vous avez un URI comme une valeur dans une URI.

Fondamentalement, je veux avoir une classe appelée Resource qui ressemblera à ceci

Resource{
  int id;
  String uri;
  String value; //this is the label or human readable name

  //.... other code/getters/setters here

  public int getId(){
    return id = stringToIntFunction();
  }

  private int stringToIntFunction(String uri){
  //do magic here
  }
}

Pouvez-vous la suggestion d'une fonction qui permettrait de faire cela que si:

  1. Il fallait être deux, c'est vous pouvez également récupérer la chaîne d'origine à partir de la valeur numérique
  2. Il n'a pas à être deux façon

Aussi y at-il d'autres questions qui sont importantes que je ne suis pas pris en compte?

Un "deux façon de fonction de hachage" est de chiffrement, oui??

OriginalL'auteur Ankur | 2011-07-10