Hash Algorithm
Table of Contents
-
Cryptography hash('digest’라고도 함)는 텍스트 또는 데이터 파일에 대한 일종의 'signature'.
SHA
SHA-256
-
Secure Hash Algorithm
-
SHA 알고리즘의 한 종류로 256bit로 구성된 64자리 문자열 반환
-
2256 개의 경우의 수를 만들 수 있음
-
어떤 길이의 값을 입력하더라도 256bit의 고정된 결과값 출력
-
8bit → 1byte, 2byte → char
-
256bit → 32byte
-
-
단방향성으로 복호화가 불가
-
16진법(hex)
val hash1 = MessageDigest
.getInstance("SHA-256")
.digest(origin.toByteArray())
.fold("", { str, it -> str + "%02x".format(it) })
// required "org.bouncycastle:bcprov-jdk15on"
val hash2 = MessageDigest
.getInstance("SHA-256")
.digest(origin.toByteArray())
.let { String(Hex.encode(it)) }
val hash3 = MessageDigest
.getInstance("SHA-256")
.digest(origin.toByteArray())
.let { BigInteger(1, it).toString(16).padStart(32, '0') }