ByteArrayOutputStream out = null;
ZipOutputStream zout = null;
String compressedStr = null;
try {
out = new ByteArrayOutputStream();
zout = new ZipOutputStream(out);
zout.putNextEntry(new ZipEntry("0"));
zout.write(str.getBytes());
zout.closeEntry();
compressed = out.toByteArray();
compressedStr = new sun.misc.BASE64Encoder().encodeBuffer(compressed);
} catch (IOException e) {
compressed = null;
} finally {
if (zout != null) {
try {
zout.close();
} catch (IOException e) {
if (out != null) {
try {
out.close();
} catch (IOException e) {
return compressedStr;
* 使用zip进行解压缩
* @param
* @return 解压后的字符串 compressed压缩后的文本
public static String unzip(String compressedStr) {
if (compressedStr == null) {
return null;
ByteArrayOutputStream out = null;
ByteArrayInputStream in = null;
ZipInputStream zin = null;
String decompressed = null;
try {
byte[] compressed = new sun.misc.BASE64Decoder().decodeBuffer(compressedStr);
out = new ByteArrayOutputStream();
in = new ByteArrayInputStream(compressed);
zin = new ZipInputStream(in);
zin.getNextEntry();
byte[] buffer = new byte[1024];
int offset = -1;
while ((offset = zin.read(buffer)) != -1) {
out.write(buffer, 0, offset);
decompressed = out.toString();
} catch (IOException e) {
decompressed = null;
} finally {
if (zin != null) {
try {
zin.close();
} catch (IOException e) {
if (in != null) {
try {
in.close();
} catch (IOException e) {
if (out != null) {
try {
out.close();
} catch (IOException e) {
return decompressed;
转载来的。原文本zip加密的时候我会莫名其妙换行,我的原始数据是json数据所以我在加密完成的时候 把\r\n都替换了如下String admin = zip(加密的字符串).replaceAll("\r\n",""); /** * 使用zip进行压缩 * @param str 压缩前的文本 * @return 返回压缩后的文本...
文本串
加密
和解密程序。一个文本串可用事先给定的字母映射表进行
加密
。例如,设字母映射表为:
a b c d e f g h I j k l m n o p q r s t u v w x y z
n g z q t c o b m u h e l k p d a w x f y I v r s j
则
字符串
“encrypt”被
加密
为“tkzwsdf”。
试写一个算法将输入的文本串进行
加密
后输出;
另写一个算法将输入的已
加密
的文本串进行解密后输出。
Deflater 是使用了LZ77算法与哈夫曼编码的一个无损数据压缩算法。
Java 提供的 Deflater 和 Inflater 类对 json 进行压缩和解压缩,下面是工具类:
package com.wjcloud.utils;
import java.io.ByteArrayOutputStream;
import java.util.Base64;
import java.util.
zip
.DataFormatException;
import java.util.
zip
.Deflater;
1,什么是
加密
加密
,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已
加密
的信息,但因不知解密的方法,仍然无法了解信息的内容。
## 这里举一个简单的
加密
如下
**123456
-
-
-
-
-
-
>234567**
每一位数字+1得到的234567而原来的123456用术语叫明文(就是
加密
前的)而 234567就是密文(
加密
后的),秘钥则是+1,这就是一个简单的
加密
过程
2,什么是MD5
加密
MD5
加密
即Message
-
Digest Algorithm 5(信息
-
摘要算法),是让大容量信息
在使用 Base64 对数据进行
加密
时,会将原始数据转换
成
一串字符,因此
加密
后的
字符串
长度可能会比原始数据长度要长。如果
加密
后的
字符串
超长,可能的原因有以下两种:
1.
加密
前的数据本身就比较长,
加密
后的
字符串
长度会随着数据长度的增加而增加。
2. 使用了错误的编码方式。在将二进制数据转换
成
字符串
时,应该使用合适的编码方式。常见的编码方式有 UTF
-
8、ISO
-
8859
-
1 等,如果使用了错误的编码方式,可能会导致
加密
后的
字符串
长度超长。
如果你需要将
加密
后的
字符串
传输或存储,可以考虑使用压缩算法对
字符串
进行压缩,以减小数据大小。常见的压缩算法有 G
zip
、
Zip
等。
另外,如果你需要
加密
的数据比较大,可以考虑使用分段
加密
的方式,将数据分
成
若干块进行
加密
,以避免一次性
加密
数据量过大导致性能问题。