Я пытаюсь подписать цифровую подпись, а затем проверить подлинность AuthnRequest. Я сгенерировал секретный ключ и сертификат открытого ключа с помощью следующих команд:Два разных секретных ключа
openssl genrsa -out privatekey.pem 2048
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 365
openssl pkcs12 -export -out public_privatekey.pfx -inkey privatekey.pem -in publickey.cer
преобразовал PFX JKS в следующей команде:
keytool -importkeystore -srckeystore public_privatekey.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
, и я доступ, что закрытый ключ входа и общественности сертификат ключа, используя следующий код Java:
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(keystoreFile), "[email protected]#".toCharArray());
KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry("1", new KeyStore.PasswordProtection("[email protected]#".toCharArray()));
java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) keyEntry.getCertificate();
Я должен напечатать значение закрытого ключа на консоль следующим:
String key = Base64.encode(keyEntry.getPrivateKey().getEncoded());
System.out.println(key);
Когда я сравниваю содержимое строки «ключ» и содержимое в файле «privatekey.pem», оба они разные. Является ли это чем-то, что я неправильно понимаю, или возникает проблема получения значения секретного ключа в коде?
. О, да, я запустил указанную вами команду и содержимое личного ключа теперь идентично. Означает ли это, что частный ключ отличается от PKCS # 1 и PKCS # 8, или ключ остается тем же, и это просто формат для хранения секретного ключа? –
@MuhammadSalmanFarooq Сам ключ не изменяется, PKCS # 1 и # 8 - это просто разные форматы хранения. – Omikron
@Omikron Привет, я получил строку с кодировкой base64 открытого ключа RSA, и как я могу узнать, что это PKCS # 1 или PKCS # fromat в java? На самом деле, я получил обе строки формата, и я могу декодировать его в java-объект RSApublickey с помощью метода diffrent, и я хочу определить, какой формат в одном методе, и сделать перевод ~ – Jaycee