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 | 29 | 30 | 31 |
Tags
- Android
- traits
- program
- haskell
- Clojure
- sha256
- async
- design pattern
- sprintf
- web
- ChromeTab
- WebView
- SHA512
- Reflect
- Scala
- CustomTab
- kotlin
- RAII
- c++
- Functional
- coroutines
- type_traits
- stringprintf
- go
- Observer
- AES
- template
- ranges
- Chrono
- SHA1
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