sun.misc.BASE64加解密跟Apache的commons-codec加解密区别以及改造兼容Apache
2015-11-24 17:38
561 查看
由于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) + "\r\n"; j += 76; h += 76; }else if(str.length()-j<76){ cc += str.substring(j, str.length()); //System.out.println(cc); break; } } } } return cc; }
相关文章推荐
- Apache Shiro
- apache 自定义404错误页面
- Apache Tiles的基本使用
- Apache Stratos探究:结合Mock IaaS,简单的跑一遍Apache Stratos 4.1.0
- 使用linux计划任务自动拉起停止的通达OA服务apache和mysql服务
- 使用linux计划任务自动拉起停止的通达OA服务apache和mysql服务
- piwik流量统计系统搭建(apache2.4+piwik+mysql5.6+php5.6.14)
- RHEL的Apache配置(基于ip&端口&域名的虚拟主机和认证)
- apache相关配置
- Apache Ignite——新一代数据库缓存系统
- win8系统下 配置apache2.4+mod_wsgi4.4+django1.8.6+python3.4
- Apache三种多路处理模块
- log4j xml配置详解
- apache虚拟主机的配置,一个IP绑定多个域名
- 编译安装apache
- Apache mina,Netty的起源和历史
- eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
- Apache Kafka
- APACHE配置文件中文详解