java 实现sftp文件上传下载——踩坑记(二)

    头一天晚上,本以为问题已经解决。而且十分合理。今天去实现才发现问题并非像昨天想象的那样简单,甚至昨天的想法是有误的 。因为我将项目的依赖library换成jdk7,然后并未添加jce扩展包。依旧可以访问。这个时候很容易理解。是因为jdk7以及开始支持大部分加密算法。在java中通过Security.getAlgorithms("MessageDigest"),Security.getAlgorithms("KeyPairGenerator")进行查看。

    但是,新的问题出现了 ,之前的项目依赖的library是myeclipse默认的jdk1.6,接着昨天的思路,添加jce6jar包。添加方法在上一篇文章里面。但是在此查询支持的算法依然是那几个。看了看jce6的创建时间,觉得可能当时还是不能够支持更多的加密算法。升级jdk之前项目支持的ftp传输就要进行大的修改。因为jdk1.6的ftpClient与jdk1.7的ftpClient差距十分大。而且jdk1.7的ftpClient变的更难,更复杂(个人觉得)。改了一会发觉这么做,很容易改坏掉之前的项目。

   最后,山重水复疑无路,柳暗花明又一村。在网上看到了Bouncy Castle,大家可以参考http://blog.csdn.net/soulofandroid/article/details/50011983这篇博客。这个jar包的功能十分强大,瞬间让jdk6支持了很多种加密算法。

 再次使用java代码连接sshd,成功。

 说了那么多,其实只要为jdk添加更多的加密算法,问题就可以的到解决。你甚至不用看之前的所有东西。直接 在你的jre依赖中添加bouncy Castle,然后修改一下\jre\lib\security\java.security配置问价,问题解决。参考http://blog.csdn.net/soulofandroid/article/details/50011983

你可能感兴趣的:(开发技术)