2009-11-10 12 views

Odpowiedz

32

Dla wyjścia jak Hex-String

import java.security.*; 
public class Test { 
    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException { 
     KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 
     keyGen.initialize(512); 
     byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded(); 
     StringBuffer retString = new StringBuffer(); 
     for (int i = 0; i < publicKey.length; ++i) { 
      retString.append(Integer.toHexString(0x0100 + (publicKey[i] & 0x00FF)).substring(1)); 
     } 
     System.out.println(retString); 
    } 
} 

dla wyjścia jako bajt wartości

import java.security.*; 
import java.security.*; 
public class Test { 
    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException { 
     KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 
     keyGen.initialize(512); 
     byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded(); 
     StringBuffer retString = new StringBuffer(); 
     retString.append("["); 
     for (int i = 0; i < publicKey.length; ++i) { 
      retString.append(publicKey[i]); 
      retString.append(", "); 
     } 
     retString = retString.delete(retString.length()-2,retString.length()); 
     retString.append("]"); 
     System.out.println(retString); //e.g. [48, 92, 48, .... , 0, 1] 
    } 
} 
+0

Dziękuję bardzo! Jeśli powinienem otrzymać taki wynik [48, -137, -97, 49, 13, 6, 8, 42, -122, 72, -122, -9, 13, 2, 3, 15 4, 0, 3, -132, -115, 0, 48, -127] powinienem użyć metody justString zamiast: retString.append (Integer.toHexString (0x0100 + (publicKey [i] & 0x00FF)). Substring (1)); ?? – Angela

+0

Sprawdź drugą listę kodów. – jitter

+1

Jeśli chcę mieć wyjście w formacie PEM, to jak mam to zrobić? – Yatin