![]() | 1 c 2014-12-01 10:26:32 +08:00 base64 |
2 Automan 2014-12-01 10:27:16 +08:00 凯撒变换 |
![]() | 3 tabris17 2014-12-01 10:30:36 +08:00 gzcompress |
6 bingo605 2014-12-01 10:40:00 +08:00 可以考虑一些数据压缩算法么,比如哈夫曼、RICE等 |
![]() | 7 coolzjy 2014-12-01 10:40:56 +08:00 你需要的是压缩算法 |
![]() | 8 wesley 2014-12-01 10:44:13 +08:00 最短的当然是把url存入数据库,传递url对应的数字ID |
![]() | 9 Mutoo 2014-12-01 10:46:29 +08:00 你的需求是 编码/解码 还是 加密/解密?这完全是两回事。 |
![]() | 10 ETiV 2014-12-01 10:49:19 +08:00 via iPhone 凯撒转换就是你自己搞一张字符串映射表 加解密就是明文/密文字符串的挨个字符从表中找出对应的密文/明文字符。 缺点是不要让用户接触到映射表或者使用加密的函数/接口,或者同时看到明文和密文。 否则映射表是可以逆推出来的。 |
![]() | 11 iyaozhen 2014-12-01 10:51:31 +08:00 估计楼主想要的是编码。 顺带求一个php简单的可逆加密算法,基于mcrypt扩展实现了一个AES-256加密方法,但想知道有没有更简单的。我需要发送账号、密码从自己主机到另一台提供api的主机。 |
12 MaiCong OP @bingo605 huffman 看上去也是乱码,不适用于url传递啊... https://github.com/Heru-Luin/PHP-Huffman @coolzjy 就是不知道才问的QAQ @wesley 但是目前不能操作数据库... @Mutoo 都可以,只要最短的 |
![]() | 14 mengskysama 2014-12-01 11:06:06 +08:00 要用url传递必须先urlencode把数据编码到某个符号范围内,长度需要增加百分之三十左右。否则不可能用url传递 |
15 feiyuanqiu 2014-12-01 11:07:28 +08:00 我知道的两种编码:base64(增加33%)、uuencode(增加35%) 楼主还是要说下应用环境,好多情况是不用做这些加密啊什么的,如果两个服务器能访问同一个数据库或者缓存,直接存数据库或缓存里面url传一个查询ID比什么加密都好 如果一定要用url传的话,可以试试1L说的凯撒加密(这个函数只适用于纯英文,解密的话直接把加密的字符串作为参数再调一次这个函数就行了): ![]() |
16 tczzjin 2014-12-01 11:07:31 +08:00 url传递参数的话有字符串上限的吧 `The limit is in MSIE and Safari about 2KB, in Opera about 4KB and in Firefox about 8KB. ` 如果非得传大量的数据的话还是先gz成二进制然后base36应该可以 |
![]() | 17 skybr 2014-12-01 11:07:37 +08:00 针对常规的url长度, 压缩只会更大. |
![]() | 18 cnxh 2014-12-01 11:59:13 +08:00 url能很好的处理base64生成的+/吗? |
![]() | 19 CupTools 2014-12-01 12:01:13 +08:00 |
20 MaiCong OP @sneezry 中文编码后很长 @mengskysama 先编码,只要长度够短就可以了,urlencode后多一点%XX没关系 @feiyuanqiu 就是用于GET传递,介于用户和服务器之间,字符长度在1-120左右,不能使用POST,于是发现url会很长,于是就来求缩短的方法了。 @tczzjin 嗯,传递的字符长度在1-120左右 @skybr 真的吗? @cnxh 这个,只能urlencode一下了... @CupTools 3Q,正在解读 |
![]() | 23 icanfork 2014-12-01 13:07:31 +08:00 <script src="https://gist.github.com/BelinChung/9a193ff06cd54515684d.js"></script> |
![]() | 24 hansnow 2014-12-01 13:18:48 +08:00 |
25 mengzhuo 2014-12-01 13:40:38 +08:00 借知乎的说法: 离开了具体是什么数据谈压缩都是耍流氓啊 |
![]() | 26 bystand3r 2014-12-01 13:53:16 +08:00 用Discuz的authcode函数吧,上面说的base64,urlencode都是编码不是加密 |
![]() | 27 justplaymore 2014-12-01 14:02:16 +08:00 ![]() 能把问题的上下文给出来么?LZ的提问有点类似XY问题了,缺少上下文,只提出了LZ想到的解决方案,没有给出问题本身,说不定有更好的解决方案,但是别人不知道问题本身,所以难以帮助LZ。 可逆算法的密文一般都是随明文长度线性增长的,所以如果想找到一个密文长度始终在一定范围内的算法,非常难。 |
28 wudikua 2014-12-01 14:10:00 +08:00 加密不会比明文更短吧。不可逆的叫摘要。短不短是压缩的问题。你可以先压缩在加密啊。 |
![]() | 29 subpo PRO 后移一位 |