[kotlin] 확장 함수를 사용하여 암호화 및 복호화 작업을 처리하는 방법은?
암호화와 복호화는 보안을 강화하는 데에 있어 중요한 작업입니다. Kotlin에서는 확장 함수를 사용하여 이러한 작업을 간편하게 처리할 수 있습니다.
아래는 암호화와 복호화를 위한 간단한 확장 함수의 예시입니다.
import java.security.SecureRandom
import javax.crypto.Cipher
import javax.crypto.spec.SecretKeySpec
import java.util.Base64
fun String.encrypt(key: String): String {
val secretKey = SecretKeySpec(key.toByteArray(), "AES")
val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding")
cipher.init(Cipher.ENCRYPT_MODE, secretKey)
val encryptedBytes = cipher.doFinal(this.toByteArray())
return Base64.getEncoder().encodeToString(encryptedBytes)
}
fun String.decrypt(key: String): String {
val secretKey = SecretKeySpec(key.toByteArray(), "AES")
val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding")
cipher.init(Cipher.DECRYPT_MODE, secretKey)
val decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(this))
return String(decryptedBytes)
}
fun main() {
val originalText = "Hello, World!"
val encryptionKey = "MySecretKey12345"
val encryptedText = originalText.encrypt(encryptionKey)
println("Encrypted Text: $encryptedText")
val decryptedText = encryptedText.decrypt(encryptionKey)
println("Decrypted Text: $decryptedText")
}
위의 코드 예시에서, encrypt
와 decrypt
함수는 String 클래스에 확장 함수로 추가되어 있습니다. 이를 통해 문자열을 암호화하고 복호화할 수 있습니다.
이런 방식으로 확장 함수를 활용하여 Kotlin에서 암호화 및 복호화 작업을 처리할 수 있습니다.
더 자세한 정보는 Kotlin 확장 함수 문서를 참고하세요.