2017-03-07 5 views
0

entschlüsselt Ich versuche, eine RSA-Textverschlüsselungs-APP für android zu schaffen, also erstelle ich drei Fragmente Generate, Encrypt, Decrypt, in dem ich publickey, privatekey in erzeugte generiere das Fragment dann kodiere es mit BASE64 und zeige es in der Textansicht an (jetzt teilt user1 es mit seinem Freund user2, dann geht er zu seiner App und fügt den Schlüssel in Textfragment verschlüsseln ein).Wie man RSA öffentlichen Schlüssel (in Java) von einer Textansicht in androide Studio

Jetzt in Encrypt Fragmente I in einem String Öffentlichkeit genommen codierten Schlüsselwert von Textansicht genommen hatte, aber ich bin nicht in der Lage, es zu öffentlichen Schlüsseln

generieren zu entschlüsseln, Encoding-Code ist

KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA"); 
       kpg.initialize(256); 
       KeyPair kp=kpg.genKeyPair(); 
       publicKey=kp.getPublic(); 
       privateKey=kp.getPrivate(); 

byte[] pubByte = publicKey.getEncoded(); 
pubKeyStr = new String(Base64.encodeToString(pubByte,Base64.DEFAULT)); 

byte[] priByte = privateKey.getEncoded(); 
priKeyStr = new String(Base64.encodeToString(priByte,Base64.DEFAULT)); 
return pubKeyStrr; 

jetzt wir pubKeyStr Wert in der Textansicht

in Encrypt Fragment i genommen haben pubKetStr Wert von Textview als

String str1=editText.getText().toString(); 
Anzeige

bitte jemand empfehlen, wie diese Zeichenfolge str1 dekodieren zu RSA konvertieren öffentlichen Schlüssel

Antwort

0

Wenn Sie den Schlüssel in einem Textfeld in Base64 codiert haben, wandeln es zuerst byte[] und dann die PublicKey

byte publicKeyData[] = Base64.decode(str1, Base64.DEFAULT) 
X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyData); 
KeyFactory kf = KeyFactory.getInstance("RSA"); 
PublicKey publicKey = kf.generatePublic(spec); 
erzeugen
+0

Sie sind ein Lebensretter, ich hatte viele Methoden ausprobiert, aber noting arbeitete. Ihre Methode arbeitete tadellos, Dank für das Posten –

Verwandte Themen