Yodlee REST API ssh 编码

Yodlee REST API ssh encoding

我正在为其余部分实施 addSiteAccount1 api。 PKI 意味着用户名和密码必须使用 public 密钥文件进行 ssh 编码。我有 public 密钥文件,我可以生成一个加密的二进制流(例如 "f\xBDZ\x16\xF5\xE6\xC42 ....."。请问我如何对其进行编码以发布到 addSiteAccount1?Yodlee RSA 加密实用程序似乎生成十六进制(?)但是我的十六进制编码字符串 encrypted_str.unpack('H*') 给我一个错误响应:"Decryption failure for FieldInfo:FieldInfoSingle".

如果您发送的值字段之一未加密,也会发生这种情况。在这种情况下,您应该使用 BouncyCastle。在这里也添加代码以供参考-

public static String encrypt(String plainText) throws Exception{

Security.addProvider(new BouncyCastleProvider());
String pub = "-----BEGIN PUBLIC KEY-----"+
        "\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtUS7ZJpnbcu8B+mfGrr0Gz6A23lS893mEFNnuR+frbtWDsoIHTfN4yhfbslkzsAMp3ENvM6Ic/0nHEvftrZxFXSrN7n3xZ+mdzOV/u8rqZoB7MEu6mZvdg3zfj7dGglq/fqlYxzHLlxDHjeCrY0dSD0ZAX1zCm3IZ0ufbMBqTrsSaHAuDlIXaQlJXmz3/Y+YfynJZXth/ats1gTBQhMIU9lWutMa4iKkeehn+P9ja4pC9NUlB9W4pojF2Qs+pY4kgTb9+SP8WjnhoSAmJMQGbYwY3HOZyfuOqAmdjoh9Y0LEZ3tq5NGD0b+T7L+P/FuIzvjYZYq6g/FaWaPcVrVLpwIDAQAB"+
        "\n-----END PUBLIC KEY-----";
System.out.println(pub);
String strt= pub;
StringReader fileReader= new StringReader(strt); 
PEMReader pemReader= new PEMReader(fileReader);
PublicKey pk= (PublicKey)pemReader.readObject();

Cipher c = Cipher.getInstance(RSA_ECB_PKCS5);
PublicKey publicKey = pk;
c.init(Cipher.ENCRYPT_MODE, transformKey(publicKey,     
"RSA", new BouncyCastleProvider()));
byte[] encValue= new byte[0];
try {
    encValue = c.doFinal(plainText.getBytes());
} catch (IllegalBlockSizeException e) {
    e.printStackTrace();
} catch (BadPaddingException e) {
    e.printStackTrace();
}
String encrypted = DatatypeConverter.printHexBinary(encValue);  
System.out.println("Encrypted value: "+encrypted);
return encrypted;

}