사용자의 비밀번호를 저장하는 웹 애플리케이션을 작성할 때 데이터베이스에 비밀번호를 일반 텍스트로 저장하는 것은 NoSQL이든 RDBMS든 결코 좋은 생각이 아닙니다. 작년에 저는 Node.js 및 Couchbase와 함께 BCrypt 사용 뿐만 아니라 자바 및 카우치베이스와 함께 BCrypt 사용. 이걸 골랑으로 가져가려면 어떻게 해야 할까요?

BCrypt를 사용하여 Golang 애플리케이션에서 비밀번호를 해시하여 안전하게 저장하는 방법을 살펴보겠습니다. 카우치베이스.

정확히 말씀드리자면, 암호화는 복호화가 가능하다는 것을 의미하므로 비밀번호 해싱에 관심이 있는 것이지 비밀번호 암호화에 관심이 있는 것은 아닙니다. 해싱은 단방향 프로세스입니다.

바둑의 가장 큰 장점은 BCrypt 패키지가 내장되어 있습니다. 이 패키지를 사용하거나 BCrypt와 관련된 작업을 할 때 두 가지 기능에 집중하게 될 것입니다. 해시 생성과 해시 비교 또는 유효성 검사입니다.

Go에서는 다음과 같이 비밀번호 문자열을 기반으로 새 해시를 생성할 수 있습니다:

사용 비밀번호로부터 생성 함수를 사용할 때는 문자열과 비용 값을 함께 전달합니다. 비용 값은 해시가 적용되는 횟수이므로 비용 값이 높을수록 함수 속도가 느려집니다.

일반 텍스트 비밀번호가 해시된 비밀번호와 일치하는지 확인하려면 다음을 실행하면 됩니다:

오류가 없으면 비밀번호가 일치하는 것입니다.

그렇다면 이 비밀번호 해싱 기능을 Couchbase에서 어떻게 사용할 수 있을까요?

다음을 예로 들어 보겠습니다:

위는 매우 조잡한 예시이지만, BCrypt 비밀번호를 저장하는 방법과 이를 비교하는 방법에 대한 요점을 파악할 수 있습니다.

결론

방금 Golang 애플리케이션에서 BCrypt를 사용하는 방법을 살펴보았습니다. 비밀번호와 같은 민감한 정보는 데이터베이스에 저장되기 전에 해시 처리하는 것이 중요합니다(NoSQL이든 다른 것이든).

Golang과 함께 Couchbase를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요. 카우치베이스 개발자 포털.

작성자

게시자 Nic Raboy, 개발자 옹호자, Couchbase

닉 라보이는 최신 웹 및 모바일 개발 기술을 옹호하는 사람입니다. 그는 Java, JavaScript, Golang 및 Angular, NativeScript, Apache Cordova와 같은 다양한 프레임워크에 대한 경험이 있습니다. Nic은 웹 및 모바일 개발을 보다 쉽게 이해할 수 있도록 자신의 개발 경험에 대해 글을 쓰고 있습니다.

댓글 남기기