您的位置:首页 > 编程语言 > Java开发

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

2018-03-12 17:50 253 查看
    头一天晚上,本以为问题已经解决。而且十分合理。今天去实现才发现问题并非像昨天想象的那样简单,甚至昨天的想法是有误的 。因为我将项目的依赖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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java sftp jsch linux sshd