[kotlin] 자바에서 코틀린 암호화 및 해시 처리

암호화 및 해싱은 보안과 관련된 솔루션에서 중요한 과제 중 하나입니다. 이것은 사용자의 개인 정보를 보호하고 데이터 무결성을 유지하는 데 중요합니다. 암호화는 데이터를 비가독성 형태로 변환하는 반면, 해싱은 데이터를 임의의 크기로 변환하는 역할을 합니다. 이번 포스트에서는 자바에서 코틀린을 사용하여 간단한 문자열을 암호화하고 해시하는 방법을 살펴보겠습니다.

자바에서 코틀린 암호화 처리

보통 자바에서 코틀린을 사용하여 암호화를 수행할 때에는 javax.crypto 라이브러리를 이용합니다. 아래의 간단한 예제 코드는 AES 알고리즘을 사용하여 문자열을 암호화하는 방법을 보여줍니다.

import javax.crypto.Cipher
import javax.crypto.spec.SecretKeySpec
import java.util.Base64

fun encrypt(text: String, key: String): String {
    val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding")
    cipher.init(Cipher.ENCRYPT_MODE, SecretKeySpec(key.toByteArray(), "AES"))
    return Base64.getEncoder().encodeToString(cipher.doFinal(text.toByteArray()))
}

fun decrypt(text: String, key: String): String {
    val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding")
    cipher.init(Cipher.DECRYPT_MODE, SecretKeySpec(key.toByteArray(), "AES"))
    return String(cipher.doFinal(Base64.getDecoder().decode(text)))
}

fun main() {
    val originalText = "Hello, world!"
    val key = "mySecretKey"
    val encryptedText = encrypt(originalText, key)
    val decryptedText = decrypt(encryptedText, key)
    println("Original: $originalText, Encrypted: $encryptedText, Decrypted: $decryptedText")
}

자바에서 코틀린 해시 처리

해싱은 보통 java.security.MessageDigest 클래스를 사용하여 수행됩니다. 아래의 예제는 SHA-256 해시 알고리즘을 사용하여 문자열을 해싱하는 방법을 보여줍니다.

import java.security.MessageDigest

fun sha256(text: String): String {
    val bytes = text.toByteArray()
    val md = MessageDigest.getInstance("SHA-256")
    val digest = md.digest(bytes)
    return digest.joinToString("") { "%02x".format(it) }
}

fun main() {
    val originalText = "Hello, world!"
    val hashedText = sha256(originalText)
    println("Original: $originalText, Hashed: $hashedText")
}

이처럼, 자바에서 코틀린을 사용하여 암호화 및 해시 처리를 수행할 수 있습니다.

이 글의 내용은 Oracle Java DocumentationKotlin Documentation를 참고하여 작성되었습니다.