Apache Commons和JSch都需要私钥文件来建立SFTP连接。我正在处理的项目将用于连接到多个SFTP服务器。因此,我们不希望部署多个私钥文件,而是将这些密钥作为字符串保留在加密的配置文件中。是否有一个不需要文件对象作为私钥的SFTP库?
JSch有一个addIdentity方法重载,它从缓冲区中获取密钥:
public class JSch {
...
public void addIdentity(String name, byte[]prvkey, byte[]pubkey, byte[] passphrase) throws JSchException{
有关实现的示例,请参见JSch:来自存储在hdfs上的私钥的addIdentity。
另请参阅在Android应用程序的Java JSch中从字符串或资源加载私钥,以获取缓冲区中密钥的格式。
备择方案:
还有一个addIdentity带有Identity接口的重载:
public class JSch {
...
public void addIdentity(Identity identity, byte[] passphrase)
只需实现该接口即可从您需要的任何地方获取私钥。
请参阅IdentityFile以获取示例实现。
或者,将所有密钥存储到中IdentityRepository。
public interface IdentityRepository {
...
public boolean add(byte[] identity);
public class JSch {
...
public synchronized IdentityRepository getIdentityRepository()
我有以下字符串格式的RSA私钥。 我正在尝试使用下面的代码片段将其转换为PrivateKey类型- 我正在犯错误- 它给我一个错误的生成私人方法。 尝试在这里使用Java的答案:将DKIM私钥从RSA转换为用于JavaMail的DER
我有一个公钥和一个私钥,还有一个字符串,我想要解密。 公钥的格式如下: 私钥的格式如下: 我要解密的字符串已经使用公钥加密,然后我需要使用私钥解密它。
我们正在通过RESTful API与Google进行集成,我需要用RSA-SHA256对JWT的有效负载进行签名,我所拥有的只是一个字符串形式的私钥,看起来像 我一直在到处寻找解决方案,但每个人都在谈论,它需要一个p12文件或一些证书。现在我没有这两个,我只有一个字符串作为私钥。 谷歌推荐https://jwt.io/它与键字符串一起工作,但是我需要我的代码来完成它。页面中列出了3个库: 其中一个
出于明显的安全原因,我需要用RSA私钥和公钥加密和解密用户的PIN码,我找到了工作解决方案,看起来像: 一切正常,但在本例中,键对不是静态的,每次都会生成新值,但我需要使用相同的键,它们表示为字符串变量: 有没有办法将这些变量强制转换为PublicKey和PrivateKey类?
如何使用作为字符串提供的公共和私有RSA密钥进行加密和解密。因为我正在使用RSACryptoServiceProvider,它需要XML格式,所以是否有可能使用提供的字符串。谢谢。
问题内容: 我有SFTP密钥对文件的内容作为字符串。我需要使用JSch添加内容,但仅接受文件路径。反正我能做到吗? 我看到该类有一个方法- 我不知道这是怎么做的。 问题答案: 有一个重载,它从缓冲区中获取密钥: 另请参阅将私钥作为字符串的Java SFTP客户端。