gpt4 book ai didi

java - 如何让 JSCh/JCE 与 Java 1.4 一起工作?

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:47 24 4
gpt4 key购买 nike

根据 http://www.jcraft.com/jsch/ , JSch 使用纯 Java,但它依赖于 Java Cryptography Extension (JCE)。众所周知,JSch 可以与 J2SE 1.4.0 或更高版本一起使用(不需要额外的库)。

在任何人建议我升级之前(这确实会让我的生活更轻松),这不是一个选择:我必须让它在 Java 1.4.2 下工作。

因此,我下载了 JSch 0.1.54 源代码(和 JZLib 1.1.3 源代码)并修复了一些小问题。剩下的绊脚石是 JCE。没有它,以下类(从 Java 1.5 开始在 java.security.interfaces 下找到)将丢失:

Error:(40, 3) java: cannot find symbol
symbol: class ECFieldFp
symbol: class ECGenParameterSpec
symbol: class ECParameterSpec
symbol: class ECPoint
symbol: class ECPrivateKey
symbol: class ECPrivateKeySpec
symbol: class ECPublicKey
symbol: class ECPublicKeySpec
symbol: class EllipticCurve

满足此需求的 JCE 源或 jar 在哪里? Bouncy CaSTLe 页面 ( https://www.bouncycastle.org/latest_releases.html ) 似乎是解决方案的一部分,但 Java 1.4 的下载选择令人眼花缭乱。我尝试了 lcrypto-jdk14-157 但它与上面的列表相比是不完整的:它仅提供 ECPointECPrivateKey

最佳答案

根据change log , 自版本 0.1.52 以来添加了支持。这些类用于com/jcraft/jsch/jce/KeyPairGenECDSA.javaKeyPairECDSA.javaECDH.havaSignatureECDSA .java 和其他支持 ECDSA key 的新文件。

如果您不必连接仅支持 ECDSA key 的服务器。一种解决方案是从 sourceforge.net 下载源代码,使用 JDK 1.4.2 构建 jar 文件。存在一个兼容问题:

jsch-0.1.51/src/main/java/com/jcraft/jsch/Util.java:490: replace(char,char) in java.
lang.String cannot be applied to (java.lang.String,java.lang.String)
str = str.replace("~", System.getProperty("user.home"));

您所要做的就是修复此错误。

关于java - 如何让 JSCh/JCE 与 Java 1.4 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com