java - 加载加密 key

标签 java android chilkat chilkat-sshkey

使用 chilkat sshkey 解密和加密 key 时出现问题。

我正在通过 SFTP 在 Android 终端和 Linux 服务器之间设置 SFTP 传输。 我确实使用 openssh (ssh-keygen) 创建了一个 key ,并通过另一个 Linux 盒子测试了该 key 。效果很好。 我现在正尝试在 Android 上做同样的事情。 我在设备上加载了私钥

CkSshKey key = new CkSshKey(); 字符串 privKey = key.loadText();

我设置了用于生成 key 的密码 key.put_Password(mPrefs.getSftpSapPass());/<- 是一个字符串

我确定已加载,因为我确实检查了 getPassword :

    CkString checkPwd = new CkString();
    key.get_Password(checkPwd);
    if (checkPwd == null) {
       Log.d(TAG, "Password not assigned");
       key.get_LastMethodSuccess();
       Log.i(TAG, "Put Password : " + key.lastErrorText());
    } else {
       Log.d(TAG, "Assigned password : " + checkPwd.getString());
       Log.i(TAG, "Info : " + key.lastErrorText());
    }

然后我尝试加载 key : key.FromOpenSshPrivateKey(privKey);

结果失败了!

  FromOpenSshPrivateKey:
    DllDate: Jul 26 2019
    ChilkatVersion: 9.5.0.79
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 32-bit
    Language: Android Java
    VerboseLogging: 0
    fromOpenSshPrivateKey:
      loadPem2:
        loadPem:
          itemType: RSA PRIVATE KEY
          addPemItem:
            decryptPem:
              sbMime: Content-Transfer-Encoding: base64
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,FFC30E1594858F31B5D56E104A01A401

NGtNvFQ+lk3kZMIBX1oTHhY4xDWdaS3OMGQFE8h/r8k4gPMpTSAdKUMWj2qr4x3Z ......................................    kOf7SEY02vMyiYj9A8iSw91qYR7esn1rMOpScdYwp5K65KHgUukrtDR4zRaLHjAT
              encryptionAlg: AES-128-CBC
              ivNumBytes: 16
              encNumBytes: 2352
              decNumBytes: 2352
            --decryptPem
            Failed to load private key...
          --addPemItem
          Failed to add PEM item.
        --loadPem
        Failed to load PEM
      --loadPem2
      Check the password, it may be 

密码正确。 可以是什么?我使用的密码包含空格,这可能是问题所在吗? 任何提示都会有所帮助!!!

谢谢

最佳答案

好的,确实找到了问题,也许对其他人有用。 显然 chilkat 库不使用“密码”。 我必须设置一个没有空格/特殊字符的密码,而不是带有空格和/或特殊字符的密码。

例如,最初我使用: “这是您正在使用的密码”

不工作。

但“This_is_a_passphrase_youre_using”也不起作用。 然后我尝试了:“This_is_a_passphrase_youre_using”..相同,即不起作用。

最终让我使用的身份验证工作:“ThisIsAPassphraseYoureUsing”

史蒂夫

关于java - 加载加密 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794325/

相关文章:

android - 将图像从本地 Android 存储加载到 WebView

c# - 从 Xamarin 表单启动 android 服务

Android 改造解析 JSON 预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY

android - 单击 webView 中的其他一些超链接/按钮时,Webview 客户端不监听 shouldOverrideUrlLoading 方法

java - 尽管没有使用 boolean 值,但我得到 "Type mismatch cannot convert from int to boolean"

java - jsf中的 session 超时

java.lang.UnsatisfiedLinkError chilkat 库

java - Elasticsearch : RemoteTransportException in Paginated search for more than 10000 results

java - 无法获取 org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler 类型的对象的未知属性 'implementation'