Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ranges
- web
- SHA1
- stringprintf
- c++
- AES
- Observer
- program
- Clojure
- WebView
- sha256
- traits
- Reflect
- template
- ChromeTab
- haskell
- Functional
- Chrono
- Android
- coroutines
- type_traits
- RAII
- CustomTab
- go
- Scala
- design pattern
- sprintf
- async
- SHA512
- kotlin
Archives
- Today
- Total
프로그래밍 검색 블로그
코틀린 파일 MD5 SHA1 SHA256 SHA512 본문
import java.io.File import java.io.FileInputStream | |
import java.security.MessageDigest | |
import javax.xml.bind.DatatypeConverter | |
fun digest(file: File, engine: String) : String{ | |
val md = MessageDigest.getInstance(engine) | |
FileInputStream(file).use { fi -> | |
val bytes = ByteArray(4096) | |
while (true) { | |
val length = fi.read(bytes) | |
if (length <= 0) { | |
break | |
} | |
md.update(bytes, 0, length) | |
} | |
val byteData = md.digest() | |
return DatatypeConverter.printHexBinary(byteData) | |
} | |
} | |
fun getMD5(file: File) = digest(file,"MD5") | |
fun getSHA1(file: File) = digest(file,"SHA1") | |
fun getSHA256(file: File) = digest(file,"SHA-256") | |
fun getSHA512(file: File) = digest(file,"SHA-512") | |
| |
fun main(args: Array<String>) { | |
val file = File("test.txt") | |
println(getMD5(file)) | |
println(getSHA1(file)) | |
println(getSHA256(file)) | |
println(getSHA512(file)) | |
} |
'Android' 카테고리의 다른 글
안드로이드 WebView 대신 Chrome Tab 사용 (1) | 2019.03.23 |
---|---|
코틀린 비동기 async (0) | 2018.02.16 |
안드로이드 SQLite 사용 Create, Index (0) | 2018.02.12 |
안드로이드 REST API / JSON 파싱 (0) | 2017.12.31 |
안드로이드 웹뷰 성능 향상 (0) | 2017.12.30 |
Comments