使用 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/