输入字符串压缩为字符串

时间:2009-09-29 16:06:40

标签: java string utf-8 compression huffman-code

我想将字符串压缩/转换为新字符串。

即: 输入字符串:

USERNAME/REGISTERID

压缩后的输出字符串:

<some-string-in-UTF8-format>

解压缩后的输出字符串:

USERNAME/REGISTERID

这种转换有一些压缩或哈希方法吗?

我更喜欢使用Java或具有基本流程步骤的算法的解决方案。

我已经阅读并尝试使用Huffman转换,但压缩输出由字节出站UTF-8字符集组成。

5 个答案:

答案 0 :(得分:2)

您可以使用ZipOutputStream

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

你只需找出正确的字符串编码。这种情况可以使用Base64 representation完成。

答案 1 :(得分:1)

请参阅iconvmb_convert_encoding。对于编码,可以考虑base64_encode

答案 2 :(得分:1)

查看Base64commons-codec

Commons-code提供了一个非常简单的Base64 class来使用。

你不能使用散列函数,因为散列函数通常只是单向的:即给定MD5或SHA1散列,你不应该解码它以找出源消息是什么。< / p>

答案 3 :(得分:0)

如果您的名字显示有标识符的数据库ID,为什么不将此数字用作编码? (如果你愿意,把它作为字符串。)

您不应该希望使用压缩算法获得更好的压缩,因为它们都需要一些标头,并且标头大小本身可能比输入字符串长。

答案 4 :(得分:0)

看起来有人要求您混淆用户名/密码组合。这可能不是一个好主意,因为它表明安全性没有。您也可以为此实现ROT13加密,并使用双ROT13进行解密。