Java: ¿Cómo puedo generar PrivateKey a partir de una cadena?

Estoy tratando de codificar un mensaje conSH1 RSA pero no tengo experiencia con el tema de seguridad, excepto cierta información básica sobreRSA. Me han dado una clave privada comoString. He logrado escribir el siguiente bloque de código para hacer el trabajo, pero no estoy seguro de si estoy haciendo el trabajo de forma segura y correcta.

No soy un experto, pero supongo que poner mi clave privada como String en el código no es seguro. ¿Alguien puede guiarme?

String privateKeyString = "mykeyhere...";
byte[] privateKeyBytes = privateKeyString.getBytes();
String encodedPrivateKey = Base64.encodeToString(privateKeyBytes, Base64.URL_SAFE);

KeyFactory factory = KeyFactory.getInstance(RSA);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encodedPrivateKey.getBytes());
RSAPrivateKey privateKey = (RSAPrivateKey) factory.generatePrivate(keySpec);

Signature instance = Signature.getInstance(ALGORITHM);
instance.initSign(privateKey);
instance.update(content.getBytes());
return new String(instance.sign());

Mi clave privada está en forma como:

"-----BEGIN PRIVATE KEY-----\n"+
"MIIE...\n"+
"cH0iRj...\n"+
"O0Hhj...\n"+
.
.
.
"fG6...\n"+
"B6/hF...\n"+
"3Mq38...\n"+
"-----END PRIVATE KEY-----\n"

Respuestas a la pregunta(1)

Su respuesta a la pregunta