Question

Je veux compresser / transformer une chaîne en tant que nouvelle chaîne.

i.e. .: chaîne d'entrée:

USERNAME/REGISTERID

chaîne de sortie après compress:

<some-string-in-UTF8-format>

chaîne de sortie après decompress:

USERNAME/REGISTERID

Il existe une méthode de hachage compresse ou pour cette transformation?

Je préfère une solution en utilisant Java ou un algorithme avec des étapes de processus de base.

Je lis déjà et essayer d'utiliser la transformation de Huffman, mais la sortie compressée sont composés par octets sortants charset UTF-8.

Était-ce utile?

La solution

Jetez un oeil à base64 , noreferrer commons-codec , etc.

Commons code fournit un classe base64 à utiliser.

Vous ne pouvez pas utiliser une fonction de hachage comme fonctions de hachage sont généralement destinés à être à sens unique: par exemple donné un hachage MD5 ou SHA1, vous ne devriez pas être en mesure de le décoder pour savoir ce que le message source était <. / p>

Autres conseils

Vous pouvez utiliser ZipOutputStream .

    ByteArrayOutputStream result = new ByteArrayOutputStream();
    new ZipOutputStream(result).write("myString".getBytes());
    byte[] bytes = result.toByteArray();

Il suffit de comprendre l'encodage de chaîne droite. Cette affaire se fait avec un représentation base64 .

Voir iconv et mb_convert_encoding . Pour l'encodage, peut-être envisager base64_encode .

si vous avez la base de données pour ids vos identifiants que vos noms suggère, pourquoi ne pas en utilisant ce numéro comme le codage? (Mettre sous forme de chaîne si vous le souhaitez).

Vous ne devriez pas espérer obtenir une meilleure compression en utilisant des algorithmes de compression comme ils ont tous besoin des en-têtes et la taille d'en-tête par lui-même est probablement plus long que votre chaîne d'entrée.

On dirait que quelqu'un vous demande de combinaisons nom d'utilisateur obfusquer / mot de passe. Ceci est probablement pas une bonne idée, car elle suggère la sécurité là où il n'y en a pas. Vous pourriez aussi bien mettre en œuvre un cryptage rot13 pour cela et utiliser le double ROT13 pour décrypter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top