2017-03-07 14 views
0

안드로이드 용 RSA 텍스트 암호화 앱을 만들어서 세 개의 조각을 생성하려고합니다. 생성, 암호화, 해독에서 publickey, privatekey를 생성했습니다. 조각을 생성 한 다음 BASE64로 인코딩하고 텍스트보기로 표시합니다. 이제 user1이 친구 user2와 공유하여 자신의 앱으로 이동하여 Encrypt Fragment textview에 키를 붙여 넣습니다. 안드로이드 스튜디오의 텍스트보기에서 RSA 공개 키를 디코딩하는 방법

지금 암호화 조각에 내가 문자열로 텍스트보기에서 촬영 인코딩 된 공개 키 값을 촬영했다하지만 난 공개 키

생성에 디코딩 할 수없는 나는, 인코딩 코드는

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; 

입니다 지금 우리는 텍스트보기에 pubKeyStr 값을 표시

내가

String str1=editText.getText().toString(); 
로 텍스트 뷰에서 pubKetStr 값을 촬영 한 암호화 조각에서

사람이 먼저 byte[]로 변환, 당신은 base64로 인코딩 된 텍스트 필드에 키가있는 경우 RSA 공개 키

답변

0

로 변환이 문자열 str1과를 디코딩하는 방법을 제안하고 PublicKey

byte publicKeyData[] = Base64.decode(str1, Base64.DEFAULT) 
X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyData); 
KeyFactory kf = KeyFactory.getInstance("RSA"); 
PublicKey publicKey = kf.generatePublic(spec); 
을 생성하십시오
+0

당신은 생명의 은인입니다, 나는 많은 방법을 시도했지만 주목했습니다. 당신의 방법은 완벽하게 작동했습니다, 게시 주셔서 감사합니다. –