已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 超级灌水 (发帖)

标题: 如何最短伪加密中文?

作者: @Ta

时间: 2021-01-22

点击: 2409

我想的加密就是让中文不显示以特殊字符代替,例如emoji,但是我想emoji加密英文可以,因为其只有26个跟10个阿拉伯数字,加上逗号句号最短只占用38个emoji,但是对于中文呢?
我想最短的是不是unicode编码?一个字符固定占用6个emoji。只是100字文章可能需要600个emoji看起来太多所以用بٍٍٍٍََُُُِّّّْرٍٍٍٍََُُِِّّّْآٍٍٍَُّ这种字符呢?占用空间小,但我不清楚有没有37个(unicode由字母数字斜杠组成)不同的
https://cway.top


[隐藏样式|查看源码]


『回复列表(8|显示机器人聊天)』

1.

@hik,用base64,找64个不同的emoji就可以。然后编码使用UTF-16或者GBK,这样大部分汉字只需要2字节。UTF-8是3字节。不过UTF-16的英文占2字节,GBK是1字节。

(/@Ta/2021-01-22 09:13//)

2.

@老虎会游泳,base64确实短,基本4个字符一个汉字,后面说的编码应该不用考虑,我想仅提供复制字符使用就行,别人输入一段文字加密后自动转成emoji
https://cway.top

(/@Ta/2021-01-22 09:28//)

3.

@hik,在输入编码为UTF-8的情况下,才是4个字符1个汉字(8个字符2个汉字)。在输入编码是GBK或者UTF-16的情况下,是8个字符3个汉字(每个汉字2.66个字符)。

Base64编码会让3个字节变为4个字节,编码后长度是原来的1.33倍。所以输入越短,输出越短。采用双字节字符集(UTF-16、GBK等)显然比三字节字符集(大部分UTF-8汉字)具有更短的输入。

(/@Ta/2021-01-22 09:53//)

4.

@hik,对了,你还可以对内容进行deflate压缩后再进行base64编码,这样可以更小。如果使用deflate压缩,原文使用什么字符编码就没什么区别了,压缩后大小应该都差不多。

注意:不要使用gzip或zlib压缩,它们其实都是deflate压缩,只是在压缩结果的基础上添加了额外的头信息,徒增大小。详见:
https://blog.csdn.net/rainharder/article/details/26342919

解码时先base64_decode再用inflate(deflate对应的解压函数)解压即可。

(/@Ta/2021-01-22 10:04//)

5.

@hikScreenshot_20210122112225.jpg

你说的可是这种?

https://emoji.ohou.ga/

小米8(白)

(/@Ta/2021-01-22 11:22//)

6.

@艾木友尔尔巴,是的不过如果按照老虎那样优化会更好,这个一个字符就占好多表情包
https://cway.top

(/@Ta/2021-01-22 11:27//)

7.

@hik,可以参考一下,期待你做出老虎的方案。我发给你的一般只是开车的
小米8(白)

(/@Ta/2021-01-22 11:28//)

8. 这个加密有意思,为什么会有这种想法啊…
(/@Ta/2021-01-22 14:15//)

回复需要登录

7月14日 20:26 星期一

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1