我们将使用 Java 在 Linux 服务器上签署文档,然后使用 C# 在 Windows PC 上验证文档和签名。做这个的最好方式是什么?
在 Java 中,我尝试使用 KeyGenerator 生成密钥对:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(256, random);
KeyPair pair = keyGen.generateKeyPair();
PublicKey publicKey = pair.getPublic();
System.out.println(" Encoding: " + publicKey.getFormat());
FileOutputStream out = new FileOutputStream("privateKey.dat");
out.write(publicKey.getEncoded());
out.close();
控制台显示密钥的格式是 X.509。然后我尝试通过调用将公钥读入 C#:
X509Certificate cert= X509Certificate.CreateFromCertFile(m_fileName);
这将引发异常: CryptographicException: 找不到请求的对象。任何有关如何完成此任务的建议将不胜感激。