zoukankan      html  css  js  c++  java
  • sun.misc.BASE64加解密跟Apache的commons-codec加解密区别以及改造兼容Apache

    由于Sun内部API sun.misc.BASE64在编译的时候会出现后期可能被删除的潜在风险的警告,然而让我们觉得以后真的删除了,那么程序就肯定报错了,潜在很大的风险。

    那么,我们有没有办法解决掉他呢?

    答案是肯定的。

    解决办法有两种,

    第一种:把Sun内部的sun.misc.BASE64Decode.jar包下载下来,利用反编译工具将jar包打开,我们把里面的代码全部拷贝出来,然后自己将此封装成一个加解密工具,这样子的话,我们就不依赖Sun它内部的加解密工具了,也不会有警告,更不会过期。

    第二种:我们可以看Sun.misc.BASE64Decoder.jar包里面的BASE64Encoder代码,我们不难发现,它的加密原理是:循环57次,每次循环i+=3,然后填充4个字节密文,直到i>57,循环刚好是19次,那么密文就是19*4=76,然后换行,由于加密还没有完成,接着第二次大循环。。。。。。直到加密完成。

    总结:每76换行,然而它是利用循环一次填充4个字节,循环19次来换一次行,那么我们可以利用将所有密文加出来后,每76个字节换一次行的方式来处理,达到一致的结果。

    public static String encodeString(String str){
                String cc = "";
                int j = 0;
                int h = 76;
                if(str.length()<76){
                    cc = str;
                }else{
                    for(int i=0;i<str.length();i++){
                        if (j <= str.length())
                        {
                            if(i%76 == 0){
                                cc += str.substring(j, h) + "
    ";
                                j += 76;
                                h += 76;
                            }else if(str.length()-j<76){
                                cc += str.substring(j, str.length());
                                //System.out.println(cc);
                                break;
                            }
                        }
                        
                    }
                }
                return cc;
          }
  • 相关阅读:
    判断大文件是否上传成功(一个大文件上传到ftp,判断是否上传完成)
    hbase的region
    把hdfs数据写入到hbase表
    eclipse和scala整合,打包配置文件及打包步骤
    sparkStreaming 读kafka的数据
    脚本put数据到hdfs
    Hive的自定义函数
    Ftp客户端需要TSL功能的文件上传
    Hive中的数据库、表、数据与HDFS的对应关系
    一文了解RPC框架原理
  • 原文地址:https://www.cnblogs.com/lvk618/p/4992309.html
Copyright © 2011-2022 走看看