이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
보안은 모든 웹 애플리케이션에 중요합니다. 해싱은 애플리케이션을 보다 안전하게 만드는 데 도움이 되는 한 가지 방법입니다. 이 기사에서는 Kotlin 및 Bcrypt 해싱에 대해 살펴보겠습니다.
Bcrypt는 크랙하기 어렵게 설계된 해싱 알고리즘입니다. 속도가 느리기 때문에 공격자가 무차별 대입을 사용하여 해시를 크랙하기가 더 어렵기 때문에 암호를 저장하는 데 적합합니다.
Kotlin은 안전하고 사용하기 쉽게 설계된 프로그래밍 언어입니다. JVM에서 실행되고 기존 Java 라이브러리와 함께 사용할 수 있기 때문에 웹 개발에 적합합니다.
Bcrypt는 크랙하기 어렵게 설계된 해싱 알고리즘입니다. 속도가 느리기 때문에 공격자가 무차별 대입을 사용하여 해시를 크랙하기가 더 어렵기 때문에 암호를 저장하는 데 적합합니다.
Bcrypt는 소금을 사용하여 해시를 해독하기 어렵게 만듭니다. 소금은 해시를 더 고유하게 만드는 데 사용되는 임의의 문자열입니다.
bcrypt 알고리즘은 다음과 같습니다.
bcrypt(passwd, salt) = hash(passwd, salt)
어디:
passwd
는 해시에 대한 암호입니다.hash
는 bcrypt 해시 함수입니다.Kotlin은 JVM에서 실행되고 기존 Java 라이브러리와 함께 사용할 수 있기 때문에 웹 개발에 적합합니다.
Kotlin에서 bcrypt를 사용하려면 bcrypt
라이브러리를 포함해야 합니다. build.gradle
파일에서 compile
지시문을 사용하여 이를 수행할 수 있습니다.
compile 'com.mindrot:jbcrypt:0.4'
이제 라이브러리가 있으므로 암호를 해시하는 함수를 만들 수 있습니다.
fun hashPassword(password: String): String {
val salt = BCrypt.gensalt()
return BCrypt.hashpw(password, salt)
}
사용자가 웹 애플리케이션에 가입할 때 이 기능을 사용하여 암호를 해시할 수 있습니다. 그런 다음 데이터베이스에 해시를 저장할 수 있습니다.
사용자가 로그인을 시도할 때 'checkpw' 기능을 사용하여 입력한 비밀번호가 저장된 해시와 동일한지 확인할 수 있습니다.
fun checkPassword(password: String, hash: String): Boolean {
return BCrypt.checkpw(password, hash)
}
Kotlin은 안전하고 사용하기 쉽게 설계된 프로그래밍 언어입니다. JVM에서 실행되고 기존 Java 라이브러리와 함께 사용할 수 있기 때문에 웹 개발에 적합합니다.
Kotlin은 정적으로 유형이 지정됩니다. 즉, 컴파일 시간에 변수의 유형을 알 수 있습니다. 이것은 코드의 오류를 방지하는 데 도움이 될 수 있습니다.
Kotlin은 또한 null 안전합니다. 즉, 명시적으로 허용하지 않는 한 null 값을 변수에 할당할 수 없습니다. 이렇게 하면 코드에서 null 포인터 예외를 방지하는 데 도움이 될 수 있습니다.
Kotlin은 JVM에서 실행되고 기존 Java 라이브러리와 함께 사용할 수 있기 때문에 웹 개발에 적합합니다.
웹 개발에 Kotlin을 사용하려면 kotlin-stdlib
라이브러리를 포함해야 합니다. build.gradle
파일에서 compile
지시문을 사용하여 이를 수행할 수 있습니다.
compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1.2'
이제 라이브러리가 있으므로 웹 애플리케이션용 Kotlin 파일을 만들 수 있습니다. main
함수를 만드는 것으로 시작하겠습니다:
fun main(args: Array<String>) {
println("Hello, world!")
}
gradlew
명령을 사용하여 웹 애플리케이션을 실행할 수 있습니다.
./gradlew run
이 기사에서는 Kotlin 및 Bcrypt 해싱에 대해 살펴보았습니다. Bcrypt를 사용하여 암호를 해시하는 방법과 웹 개발에 Kotlin을 사용하는 방법을 살펴보았습니다.