android和php,字符压缩和编码

base64_encode(gzdeflate(源字符串))

Android字符压缩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static byte[] deflater(String data) {


//内存输出流
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// 要使用no_wrap的Deflater,php才能解压,9是最高的压缩级别,可以设置为1-9的级别,1速度最快
DeflaterOutputStream deflaterOut = new DeflaterOutputStream(outputStream, new Deflater(9, true));
try {
deflaterOut.write(data.getBytes());
//一定要finish否则长度为0
deflaterOut.finish();
outputStream.flush();

//String str = outputStream.toString();
byte[] byteArray = outputStream.toByteArray();
return byteArray;

} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
try {
//inputStream.close();
deflaterOut.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Android Base64编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static String (String s) {
byte[] bytes;
String encodeString = null;
try {
bytes = s.getBytes("UTF-8");
encodeString = Base64.encodeToString(bytes, Base64.NO_WRAP)
//java中使用(需要jdk8)
//Base64.getEncoder().encodeToString("some string".getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

return encodeString;
}

PHP 解码与解压缩

1
2
3
$Code = '这里填写要解密的编码'; // base64编码 
$Temp = base64_decode($Code);
$postStr = gzinflate($Temp);

参考网址:https://blog.csdn.net/hdgcx/article/details/53916837