开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 463|回复: 14
收起左侧

[已解决] 这段代码用zlib哪个模块可以实现

 关闭 [复制链接]
结帖率:100% (11/11)
发表于 2024-3-7 10:21:51 | 显示全部楼层 |阅读模式   广东省河源市
100精币
[color=rgba(255, 255, 255, 0.5)]// 创建一个新的Deflater对象,使用默认的压缩级别,并将nowrap参数设置为true[color=rgba(255, 255, 255, 0.5)]// nowrap参数指定是否使用GZIP数据格式[color=rgba(255, 255, 255, 0.5)]// 如果为true,则数据将使用GZIP格式进行压缩;如果为false,则将使用ZLIB格式进行压缩[color=rgba(255, 255, 255, 0.5)]// 在这里,我们使用GZIP格式(true),它会向压缩数据添加头部和尾部Deflater deflater = new Deflater(Deflater.DEFAULT_COMPRESSION, true);论坛的模块都下来试过了,目前没发现能用来实现和Java压缩出来的结果是一致的,请各位大佬指教,谢谢






补充内容 (2024-3-7 14:36):

// 创建一个新的Deflater对象,使用默认的压缩级别,并将nowrap参数设置为true
// nowrap参数指定是否使用GZIP数据格式
// 如果为true,则数据将使用GZIP格...

最佳答案

查看完整内容

我也尝试了下。 deflate,zlib,gzip 数据压缩模块 https://bbs.125.la/forum.php?mod=viewthread&tid=14813366 (出处: 精易论坛) 这个封装的deflate是最接近的了,用了点骚操作才一样,感觉你问这个楼主也许有答案把

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

签到天数: 7 天

发表于 2024-3-7 10:21:52 | 显示全部楼层   浙江省杭州市
我也尝试了下。

deflate,zlib,gzip 数据压缩模块
https://bbs.125.la/forum.php?mod=viewthread&tid=14813366
(出处: 精易论坛)

这个封装的deflate是最接近的了,用了点骚操作才一样,感觉你问这个楼主也许有答案把

QQ截图20240308200131.jpg

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-7 10:24:32 | 显示全部楼层   广东省河源市
// 创建一个新的Deflater对象,使用默认的压缩级别,并将nowrap参数设置为true
// nowrap参数指定是否使用GZIP数据格式
// 如果为true,则数据将使用GZIP格式进行压缩;如果为false,则将使用ZLIB格式进行压缩
// 在这里,我们使用GZIP格式(true),它会向压缩数据添加头部和尾部
Deflater deflater = new Deflater(Deflater.DEFAULT_COMPRESSION, true);
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-7 14:37:22 | 显示全部楼层   广东省河源市
a657938016 发表于 2024-3-7 10:24
// 创建一个新的Deflater对象,使用默认的压缩级别,并将nowrap参数设置为true
// nowrap参数指定是否使用G ...

@大司命 大佬能帮忙看看吗
回复

使用道具 举报

签到天数: 7 天

发表于 2024-3-8 17:16:57 | 显示全部楼层   浙江省杭州市
你至少得给出完整代码把
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-8 18:02:22 | 显示全部楼层   广东省河源市
black0216 发表于 2024-3-8 17:16
你至少得给出完整代码把

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        byteArrayOutputStream.write("1234".getBytes("utf-8"));
        byteArrayOutputStream.write(str.getBytes("utf-8"));
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        byte[] bArr = new byte[byteArray.length + (((byteArray.length / 16384) + 1) * 5) + 6];
        Deflater deflater = new Deflater(-1, true);
        deflater.setStrategy(0);
        deflater.setInput(byteArray);
        deflater.finish();
        deflater.deflate(bArr);
        int totalOut = deflater.getTotalOut();
        deflater.end();
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-8 18:02:57 | 显示全部楼层   广东省河源市
black0216 发表于 2024-3-8 17:16
你至少得给出完整代码把

求大佬指点,感谢
回复

使用道具 举报

签到天数: 7 天

发表于 2024-3-8 18:12:59 | 显示全部楼层   浙江省杭州市
a657938016 发表于 2024-3-8 18:02
求大佬指点,感谢

又是缺胳膊少腿的,你上个帖子RC4就是代码不全,丢idea里面都运行不了的,还得自己补齐。
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-8 19:11:51 | 显示全部楼层   广东省河源市
black0216 发表于 2024-3-8 18:12
又是缺胳膊少腿的,你上个帖子RC4就是代码不全,丢idea里面都运行不了的,还得自己补齐。 ...

public static String m2255a(String str) throws IOException {
        String str2;
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        byteArrayOutputStream.write("0740".getBytes("utf-8"));
        byteArrayOutputStream.write(str.getBytes("utf-8"));
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        byte[] bArr = new byte[byteArray.length + (((byteArray.length / 16384) + 1) * 5) + 6];
        Deflater deflater = new Deflater(-1, true);
        deflater.setStrategy(0);
        deflater.setInput(byteArray);
        deflater.finish();
        deflater.deflate(bArr);
        int totalOut = deflater.getTotalOut();
        deflater.end();
        byte[] bArr2 = new byte[totalOut];
        System.arraycopy(bArr, 0, bArr2, 0, totalOut);
        try {
            str2 = new String(m2229a(m2228b(bArr2)), "utf-8");
        } catch (Throwable unused) {
            str2 = "";
        }
        return "0740".concat(str2);
    }
    public static final byte[] f3157a = {-120, 38, -81, -60, -106, -98, -58, -67, 89, 18, Byte.MAX_VALUE, -75, -39, -79, -43, -15};

    /* renamed from: a */
    public static byte[] m2229a(byte[] bArr) throws Exception {
        byte padSymbol = 61;
        int i;
        byte[] bArr2 = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49,50,51,52,53,54,55, 56, 57, 43, 47};
        int length = bArr.length;
        if (length != 0) {
            int i2 = length / 3;
            byte[] bArr3 = new byte[((length % 3 != 0 ? 1 : 0) + i2) * 4];
            int i3 = 0;
            int i4 = 0;
            for (int i5 = 0; i5 < i2; i5++) {
                int i6 = i3 + 2;
                int i7 = (bArr[i3 + 1] & 255) << 8;
                i3 += 3;
                int i8 = i7 | ((bArr[i3] & 255) << 16) | (bArr[i6] & 255);
                bArr3[i4] = bArr2[(i8 >> 18) & 63];
                bArr3[i4 + 1] = bArr2[(i8 >> 12) & 63];
                int i9 = i4 + 3;
                bArr3[i4 + 2] = bArr2[(i8 >> 6) & 63];
                i4 += 4;
                bArr3[i9] = bArr2[i8 & 63];
            }
            int i10 = i2 * 3;
            if (i10 < length) {
                int i11 = i3 + 1;
                int i12 = (bArr[i3] & 255) << 16;
                int i13 = i4 + 1;
                bArr3[i4] = bArr2[(i12 >> 18) & 63];
                if (i10 + 1 < length) {
                    int i14 = ((bArr[i11] & 255) << 8) | i12;
                    int i15 = i4 + 2;
                    bArr3[i13] = bArr2[(i14 >> 12) & 63];
                    i = i4 + 3;
                    bArr3[i15] = bArr2[(i14 >> 6) & 63];
                } else {
                    int i16 = i4 + 2;
                    bArr3[i13] = bArr2[(i12 >> 12) & 63];
                    i = i4 + 3;
                    bArr3[i16] = padSymbol;
                }
                bArr3 = padSymbol;
            }
            return bArr3;
        }
        throw new Exception("Invalid length");
    }

    /* renamed from: b */
    public static byte[] m2228b(byte[] bArr) {
        byte[] bArr2 = new byte[4];
        new SecureRandom().nextBytes(bArr2);
        byte[] bArr3 = new byte[bArr.length + 4];
        int length = bArr.length;
        int length2 = f3157a.length;
        byte[] bArr4 = new byte[length2];
        for (int i = 0; i < length2; i++) {
            bArr4 = (byte) (f3157a ^ bArr2[i % 4]);
        }
        for (int i2 = 0; i2 < length; i2++) {
            bArr3[i2] = (byte) (bArr[i2] ^ bArr4[i2 % length2]);
        }
        System.arraycopy(bArr2, 0, bArr3, bArr.length, 4);
        return bArr3;
    }
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 2 天

 楼主| 发表于 2024-3-8 19:13:45 | 显示全部楼层   广东省河源市
black0216 发表于 2024-3-8 18:12
又是缺胳膊少腿的,你上个帖子RC4就是代码不全,丢idea里面都运行不了的,还得自己补齐。 ...

大佬我错了,抱歉,以下是调用方法,辛苦大佬了
  public static void main(String[] args) throws Exception {
        String a="adasdsadsadasd"

        String c=m2255a(a);
        System.out.println(c);
    }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表