我正在做一个应用程序,其中服务器验证客户端使用EC加密。为此,我需要一个方法来发送公钥到服务器。
这是我的代码生成公钥:
import java.io.FileInputStream;
import java.io.FileWriter;
import java.security.*;
import java.security.spec.ECGenParameterSpec;
import java.util.Base64;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class StoreKeys{
public static void main(String args[]) throws Exception {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256r1");
keyGen.initialize(ecSpec);
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
}
}
我已经尝试过将密钥作为坐标(重新生成它)和PEM发送,但是我发现没有一种方法对我有效。
对于连接到服务器,我使用TCP 'net'库的nodejs.
会很感激任何帮助。
1条答案
按热度按时间nue99wik1#
在客户端(Java),你需要把密钥转换成一个可传输的字符串。我建议如下:
使用node-rsa将其转换回js的公钥:
我会通过在Java端创建一个http客户端,在nodejs端创建一个http服务器(例如express)来传输。