Java公共密钥被编码为标准的X.509 SubjectPublicKeyInfo结构。
SSH2使用其自己的简单格式。base-64对
enpre下面显示的方法的结果进行编码,并附加必要的SSH2标头和页脚。
public static byte[] enpre(RSAPublicKey key) throws IOException{ ByteArrayOutputStream buf = new ByteArrayOutputStream(); byte[] name = "ssh-rsa".getBytes("US-ASCII"); write(name, buf); write(key.getPublicExponent().toByteArray(), buf); write(key.getModulus().toByteArray(), buf); return buf.toByteArray();}private static void write(byte[] str, OutputStream os) throws IOException{ for (int shift = 24; shift >= 0; shift -= 8) os.write((str.length >>> shift) & 0xFF); os.write(str);}有关将其他方向从OpenSSH转换为Java的信息,请参见此答案。



