如何从 Android studio 中的文本视图解码 RSA public 密钥(在 java 中)

How to Decode RSA public key(in java) from a text view in Android studio

我正在尝试为 android 创建一个 RSA 文本加密应用程序,所以我创建了三个片段生成、加密、解密,我在其中生成了 public 密钥,生成片段中的私钥然后用BASE64 并将其显示在文本视图中(现在 user1 与他的朋友 user2 共享它,然后他转到他的应用程序并将密钥粘贴到 Encrypt Fragment 文本视图中)。

现在在 Encrypt Fragment 中,我已经从文本视图中获取编码的 public 键值到一个字符串,但我无法将它解码为 public 键

正在生成,编码代码为

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 值

在 Encrypt Fragment 中,我从 textview 中获取 pubKetStr 值作为

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

请任何人建议如何解码此字符串 str1 以将其转换为 RSA public 密钥

如果您在以 base64 编码的文本字段中有密钥,请先将其转换为 byte[],然后生成 PublicKey

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