[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