【发布时间】:2014-01-16 15:45:03
【问题描述】:
我正在尝试在 Java 中生成用于 SSH 的公钥/私钥对,这只是一个测试类,以确保我生成了正确类型的密钥。
但是,当我将私钥打印到控制台时,它不会打印完整的私钥。
这是我的源代码:
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.spec.InvalidKeySpecException;
public class Crypto
{
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeySpecException
{
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair test = keyGen.genKeyPair();
System.out.println(test.getPrivate());
System.out.println(test.getPublic());
}
}
我正在运行 Java JDK 1.7_45,这是在 eclipse 中运行时的完整控制台输出:
sun.security.rsa.RSAPrivateCrtKeyImpl@2bd00
Sun RSA public key, 1024 bits
modulus: <removed because it's so long>
public exponent: 65537
@ 符号后面的字符串一直在变化,但我不相信它实际上是私钥。
提前感谢大家的帮助!
编辑:对不起各位,我实际上并没有问我的问题,我只是陈述了我的问题。 我的完整问题是:如何将私钥作为常规字符串访问?
【问题讨论】:
-
@ 符号后面的字符串(本质上)是一个内存地址... PrivateKey 实现似乎没有覆盖
toString。