专栏首页小小码农一个。获取压缩包中的文本字符串。

获取压缩包中的文本字符串。

业务如下

通过指定位置压缩包解析公钥,和密文,解析客户信息,不需要解压,那是我手动解压看效果的。 ps:中文可能会产生乱码,调一下编码。

代码如下

  public static void main(String[] args) throws Exception {
        new fileCheck().readZipFile("/Users/cuixiaoyan/Downloads/嘉士利科技有限公司.zip");
    }

    /**
     * 读取文件校验
     * @param filePath
     * @throws Exception
     */
    public String readZipFile(String filePath) throws Exception {
        //获取文件输入流
        FileInputStream input = new FileInputStream(filePath);
        //获取ZIP输入流(一定要指定字符集Charset.forName("GBK")否则会报java.lang.IllegalArgumentException: MALFORMED)
        ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(input), Charset.forName("GBK"));
        //定义ZipEntry置为null,避免由于重复调用zipInputStream.getNextEntry造成的不必要的问题
        ZipEntry ze = null;
        //公钥
        String publicKey = "";
        //密文
        String cipher = "";
        //循环遍历
        while ((ze = zipInputStream.getNextEntry()) != null) {
            //读取
            BufferedReader br = new BufferedReader(new InputStreamReader(zipInputStream, Charset.forName("GBK")));
            String line;
            while ((line = br.readLine()) != null) {
                if (ze.getName().equals("publicKey.txt")) {
                    publicKey = line += "\n";
                }
                if (ze.getName().equals("cipher.txt")) {
                    cipher += line += "\n";
                }
            }
        }
        //获取明文
        String clear = rSAUtilPbulicKey.decryptByPublicKey(publicKey, cipher);
        zipInputStream.closeEntry();
        input.close();
        return clear;
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jxls嵌套导出excel。

     我们设想一下,有一条哆啦A梦的流水生产线,生产线上在生成这哆啦A梦。我们知道,哆啦A梦的口袋中有很多不同的道具,那么我们在生成的时候就把这些道具预先放进哆啦...

    崔笑颜
  • Collection.toArray()

    该方法是一个泛型方法: T[] toArray(T[] a); 如果toArray方法中没有传递任何参数的话返回的是Object类型数组。

    崔笑颜
  • SpringBoot工具集成

    使用 @Scheduled 定义任务执行时间,代码中表示每隔 2 秒执行一次任务。

    崔笑颜
  • Java利用多线程和Socket制作GUI界面的在线聊天室

    最近刚好是期末,碰上Java实训,借此将之前写的在线聊天室搬出来,加上GUI(Swing),当成实训作品,记录一下这次实训的结果。

    HcodeBlogger
  • 软件注册码功能的实现

    最近公司项目需要添加这个功能,听到软件注册码,我的第一反应就是破解,例如idea破解到2099年之类的(这年头谁花钱用正版啊),其实我听到这个功能需求是一脸懵逼...

    低调小熊猫
  • 5.AsyncHttp、post

    六月的雨
  • 反射利器——jOOR

    反射提供了运行时修改对象的能力,但Java提供的Refelec包实在是太复杂了,首先得到Class、再根据Class去找到Field或Method,再进行调用,...

    用户1108631
  • 微信扫码支付

    一,需要申请公司的微信公众号,以及商户号。然后在商户号中关联微信公众APPID。在商户平台添加扫码支付功能。

    故久
  • RxJava2 多线程

    subscribeOn这个操作符指定的是Observable自身在哪个调度器上执行,而且跟调用的位置没有关系。

    剑行者
  • 项目工具类

    一、前言     在工作中,难免遇到各种各样的问题,每个人似乎都有一套自己的解决方案。而我,又不想每次解决完问题就把东西扔了,捡了芝麻,丢了西瓜,什么时候才能进...

    JMCui

扫码关注云+社区

领取腾讯云代金券