Exemplo de script de criptografia assimétrica:
- #Kotlin
- #Android
- #Java
A criptografia assimétrica utiliza um par de chaves - uma pública e outra privada - para proteger informações sensíveis. Tipo, você criptografa a mensagem usando uma chave pública, gerando um string cabuloso que só faz sentido se você tiver a chave privada. (E sim, isso montou um Triplex na minha cabeça kkkkk)
A melhor chave que se pode utilizar é a RSA, que sua segurança é baseada na dificuldade de fatorar grandes números primos, o que acaba impossibilitando a quebra através da força bruta, baseando-se mais na impossibilidade computacional para quebra do que para o segredo da chave. (SENTE A PRESSÃO NENÉM💥🔊)
Uma estratégia interessante para se manter a comunicação é através do uso de RSA com o AES, onde o AES criptografa grandes volumes de dados rapidamente, e o RSA protege a troca de chaves, driblando o grande desafio de como você pode transmitir a chave sem ela ser interceptada pela rede.
O uso de Base64 converte dados binários em texto, facilitando a transmissão e armazenamento de dados criptografados. A criptografia ponta a ponta garante que os dados sejam criptografados no dispositivo do remetente e só possam ser descriptografados no dispositivo do destinatário, oferecendo uma camada adicional de segurança.
Um exemplo bem meia-boca de scripts que pode ilustrar é esse:
```
fun main () {
// Gera um par de chaves RSA
val keyPair = AsymmetricCryptoUtil.generateKeyPair()
val publicKey = keyPair.public
val privateKey = keyPair.private
// Gera uma chave simétrica
val symetricKey = AsymmetricCryptoUtil.generateSymetricKey()
// Encripta a chave simétrica com a chave publica
val encryptedSymetricKey = AsymmetricCryptoUtil.encryptSymmetricKey(symetricKey, publicKey)
// Decripta a chave simétrica com a chave privada
val decryptedSymetricKey = AsymmetricCryptoUtil.decryptSymmetricKey(encryptedSymetricKey, privateKey)
// Encripta a mensagem com a chave simétrica
val encryptedMessage = AsymmetricCryptoUtil.encryptWithSymetricKey("Hello World", decryptedSymetricKey)
// Decripta a mensagem com a chave simétrica
val decryptedMessage = AsymmetricCryptoUtil.decryptWithSymetricKey(encryptedMessage, decryptedSymetricKey)
}
```
Script completo: https://github.com/pmd1308/Kotlin-roadmap.sh/blob/main/Script%20e%20Snips/CyberSecurity/CriptografiaAssimetrica.kt