У меня есть файл закрытого ключа, который выглядит следующим образом
-----НАЧАЛО ЧАСТНОГО КЛЮЧА -----
[content]
----- КОНЕЦ ЧАСТНОГО КЛЮЧА -----
Я хочу зашифровать строковые данные с помощью этого ключа
Я пытаюсь вот так:
fun encryptData(txt: String, pk: String): String {
var encoded = ""
var encrypted: ByteArray? = null
try {
val publicBytes: ByteArray = Base64.decode(pk, Base64.DEFAULT)
val keySpec = X509EncodedKeySpec(publicBytes)
val keyFactory: KeyFactory = KeyFactory.getInstance("RSA")
val pubKey: PrivateKey = keyFactory.generatePrivate(keySpec)
val cipher: Cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING")
cipher.init(Cipher.ENCRYPT_MODE, pubKey)
encrypted = cipher.doFinal(txt.toByteArray())
encoded = Base64.encodeToString(encrypted, Base64.DEFAULT)
} catch (e: Exception) {
e.printStackTrace()
}
return encoded
}
я получаю исключение InvalidKeySpecException каждый раз, когда пытаюсь закодировать
can someone help ?
Подробнее здесь: https://stackoverflow.com/questions/747 ... rivate-key