[kotlin] 파일 내용을 해시값으로 확인하는 방법

파일의 내용이 변경되지 않았는지 확인하기 위해 파일의 해시값을 사용할 수 있습니다. Kotlin에서는 java.security.MessageDigest 클래스를 사용하여 파일의 해시값을 생성할 수 있습니다.

다음은 파일의 내용을 해시값으로 확인하는 Kotlin 함수의 예시입니다.

import java.io.File
import java.io.FileInputStream
import java.security.MessageDigest

fun getFileHash(filePath: String): String {
    val file = File(filePath)
    val md = MessageDigest.getInstance("SHA-256")
    val fis = FileInputStream(file)
    val byteArray = ByteArray(8192)
    var bytesRead: Int

    while (fis.read(byteArray).also { bytesRead = it } != -1) {
        md.update(byteArray, 0, bytesRead)
    }
    fis.close()

    val digest = md.digest()
    val stringBuilder = StringBuilder()

    for (byte in digest) {
        val hex = Integer.toHexString(0xFF and byte.toInt())
        if (hex.length == 1) {
            stringBuilder.append('0')
        }
        stringBuilder.append(hex)
    }

    return stringBuilder.toString()
}

fun main() {
    val filePath = "path/to/file.txt"
    val hash = getFileHash(filePath)
    
    println("해시값: $hash")
}

위의 코드에서 getFileHash 함수는 파일 경로를 매개변수로 받아 해당 파일의 해시값을 반환하는 함수입니다. MessageDigest 클래스를 사용하여 SHA-256 알고리즘을 적용한 해시값을 생성합니다.

main 함수에서는 예시로 path/to/file.txt 파일의 해시값을 출력합니다. 실제 사용하실 때는 원하는 파일의 경로를 지정해주시면 됩니다.

이를 실행하면 파일의 해시값이 출력됩니다.

참고 문서: MessageDigest - Java Documentation