[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")
}

위의 코드 예시에서, encryptdecrypt 함수는 String 클래스에 확장 함수로 추가되어 있습니다. 이를 통해 문자열을 암호화하고 복호화할 수 있습니다.

이런 방식으로 확장 함수를 활용하여 Kotlin에서 암호화 및 복호화 작업을 처리할 수 있습니다.

더 자세한 정보는 Kotlin 확장 함수 문서를 참고하세요.