로그인 기능을 구현할 때, 비밀번호나 민감한 데이터를 서버에 평문으로 전송하면 보안상 위험
이를 방지하기 위해 클라이언트에서 SHA-256 해시 함수를 이용한 암호화를 적용할 수 있음
/**
* SHA256 암호화
*/
fun encryptSha256(keyword: String): String {
return try {
val md = MessageDigest.getInstance("SHA-256")
md.update(keyword.toByteArray())
bytesToHex(md.digest())
} catch (e: NoSuchAlgorithmException) {
e.printStackTrace()
""
}
}
/**
* 바이트 배열을 문자열로
*
* @param bytes 바이트 배열
* @return 문자열
*/
private fun bytesToHex(bytes: ByteArray): String {
val builder = StringBuilder()
for (b in bytes) {
builder.append(String.format("%02x", b))
}
return builder.toString()
}
val encryptedPassword = encryptSha256("myPassword123")
println("Encrypted: $encryptedPassword")