{"id":3911,"date":"2017-08-10T07:00:01","date_gmt":"2017-08-10T14:00:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3911"},"modified":"2025-06-13T19:28:02","modified_gmt":"2025-06-14T02:28:02","slug":"password-data-couchbase-golang-bcrypt","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/password-data-couchbase-golang-bcrypt\/","title":{"rendered":"Golang \ubc0f BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \ube44\ubc00\ubc88\ud638 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud558\uae30"},"content":{"rendered":"<p>\uc0ac\uc6a9\uc790\uc758 \ube44\ubc00\ubc88\ud638\ub97c \uc800\uc7a5\ud558\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc791\uc131\ud560 \ub54c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ube44\ubc00\ubc88\ud638\ub97c \uc77c\ubc18 \ud14d\uc2a4\ud2b8\ub85c \uc800\uc7a5\ud558\ub294 \uac83\uc740 NoSQL\uc774\ub4e0 RDBMS\ub4e0 \uacb0\ucf54 \uc88b\uc740 \uc0dd\uac01\uc774 \uc544\ub2d9\ub2c8\ub2e4. \uc791\ub144\uc5d0 \uc800\ub294 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/hashing-passwords-stored-in-couchbase-server-with-nodejs\/\" target=\"_blank\" rel=\"noopener\">Node.js \ubc0f Couchbase\uc640 \ud568\uaed8 BCrypt \uc0ac\uc6a9<\/a> \ubfd0\ub9cc \uc544\ub2c8\ub77c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/storing-password-data-safely-with-java-and-spring-security-bcrypt\/\" target=\"_blank\" rel=\"noopener\">\uc790\ubc14 \ubc0f \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 BCrypt \uc0ac\uc6a9<\/a>. \uc774\uac78 \uace8\ub791\uc73c\ub85c \uac00\uc838\uac00\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694?<\/p>\n<p>BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec Golang \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ube44\ubc00\ubc88\ud638\ub97c \ud574\uc2dc\ud558\uc5ec \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>\uc815\ud655\ud788 \ub9d0\uc500\ub4dc\ub9ac\uc790\uba74, \uc554\ud638\ud654\ub294 \ubcf5\ud638\ud654\uac00 \uac00\ub2a5\ud558\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud558\ubbc0\ub85c \ube44\ubc00\ubc88\ud638 \ud574\uc2f1\uc5d0 \uad00\uc2ec\uc774 \uc788\ub294 \uac83\uc774\uc9c0 \ube44\ubc00\ubc88\ud638 \uc554\ud638\ud654\uc5d0 \uad00\uc2ec\uc774 \uc788\ub294 \uac83\uc740 \uc544\ub2d9\ub2c8\ub2e4. \ud574\uc2f1\uc740 \ub2e8\ubc29\ud5a5 \ud504\ub85c\uc138\uc2a4\uc785\ub2c8\ub2e4.<\/p>\n<p>\ubc14\ub451\uc758 \uac00\uc7a5 \ud070 \uc7a5\uc810\uc740 <a href=\"https:\/\/godoc.org\/golang.org\/x\/crypto\/bcrypt\" target=\"_blank\" rel=\"noopener\">BCrypt<\/a> \ud328\ud0a4\uc9c0\uac00 \ub0b4\uc7a5\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\uac70\ub098 BCrypt\uc640 \uad00\ub828\ub41c \uc791\uc5c5\uc744 \ud560 \ub54c \ub450 \uac00\uc9c0 \uae30\ub2a5\uc5d0 \uc9d1\uc911\ud558\uac8c \ub420 \uac83\uc785\ub2c8\ub2e4. \ud574\uc2dc \uc0dd\uc131\uacfc \ud574\uc2dc \ube44\uad50 \ub610\ub294 \uc720\ud6a8\uc131 \uac80\uc0ac\uc785\ub2c8\ub2e4.<\/p>\n<p>Go\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ube44\ubc00\ubc88\ud638 \ubb38\uc790\uc5f4\uc744 \uae30\ubc18\uc73c\ub85c \uc0c8 \ud574\uc2dc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">hash, err := bcrypt.GenerateFromPassword([]byte(\"my-password\"), 10)<\/pre>\n<p>\uc0ac\uc6a9 <code>\ube44\ubc00\ubc88\ud638\ub85c\ubd80\ud130 \uc0dd\uc131<\/code> \ud568\uc218\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub294 \ubb38\uc790\uc5f4\uacfc \ube44\uc6a9 \uac12\uc744 \ud568\uaed8 \uc804\ub2ec\ud569\ub2c8\ub2e4. \ube44\uc6a9 \uac12\uc740 \ud574\uc2dc\uac00 \uc801\uc6a9\ub418\ub294 \ud69f\uc218\uc774\ubbc0\ub85c \ube44\uc6a9 \uac12\uc774 \ub192\uc744\uc218\ub85d \ud568\uc218 \uc18d\ub3c4\uac00 \ub290\ub824\uc9d1\ub2c8\ub2e4.<\/p>\n<p>\uc77c\ubc18 \ud14d\uc2a4\ud2b8 \ube44\ubc00\ubc88\ud638\uac00 \ud574\uc2dc\ub41c \ube44\ubc00\ubc88\ud638\uc640 \uc77c\uce58\ud558\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74 \ub2e4\uc74c\uc744 \uc2e4\ud589\ud558\uba74 \ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">err = bcrypt.CompareHashAndPassword([]byte(\"hashed-password\"), []byte(\"plaintext-password\"))<\/pre>\n<p>\uc624\ub958\uac00 \uc5c6\uc73c\uba74 \ube44\ubc00\ubc88\ud638\uac00 \uc77c\uce58\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub807\ub2e4\uba74 \uc774 \ube44\ubc00\ubc88\ud638 \ud574\uc2f1 \uae30\ub2a5\uc744 Couchbase\uc5d0\uc11c \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc744\uae4c\uc694?<\/p>\n<p>\ub2e4\uc74c\uc744 \uc608\ub85c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">type Account struct {\r\n\tType     string `json:\"type,omitempty\"`\r\n\tEmail    string `json:\"email,omitempty\"`\r\n\tPassword string `json:\"password,omitempty\"`\r\n}\r\n\r\nfunc main() {\r\n    cluster, _ := gocb.Connect(\"couchbase:\/\/localhost\")\r\n    bucket, _ := cluster.OpenBucket(\"default\", \"\")\r\n    email := \"test@example.com\"\r\n    pass := \"my-password\"\r\n    hash, _ := bcrypt.GenerateFromPassword([]byte(pass), 10)\r\n    account := Account{\r\n        Type:     \"account\",\r\n        Email:    email,\r\n        Password: string(hash),\r\n    }\r\n    bucket.Insert(email, account, 0)\r\n    account = Account{}\r\n    bucket.Get(email, &amp;account)\r\n\terr := bcrypt.CompareHashAndPassword([]byte(account.Password), []byte(pass))\r\n\tif err != nil {\r\n\t\tfmt.Println(err.Error())\r\n\t}\r\n}<\/pre>\n<p>\uc704\ub294 \ub9e4\uc6b0 \uc870\uc7a1\ud55c \uc608\uc2dc\uc774\uc9c0\ub9cc, BCrypt \ube44\ubc00\ubc88\ud638\ub97c \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uacfc \uc774\ub97c \ube44\uad50\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \uc694\uc810\uc744 \ud30c\uc545\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uacb0\ub860<\/h2>\n<p>\ubc29\uae08 Golang \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c BCrypt\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ube44\ubc00\ubc88\ud638\uc640 \uac19\uc740 \ubbfc\uac10\ud55c \uc815\ubcf4\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ub418\uae30 \uc804\uc5d0 \ud574\uc2dc \ucc98\ub9ac\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4(NoSQL\uc774\ub4e0 \ub2e4\ub978 \uac83\uc774\ub4e0).<\/p>\n<p>Golang\uacfc \ud568\uaed8 Couchbase\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc744 \ucc38\uc870\ud558\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/developers\/\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uac1c\ubc1c\uc790 \ud3ec\ud138<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>When writing web applications that store passwords for your users, it is never a good idea to store them as plain text in your database, whether that be NoSQL or RDBMS. Last year I wrote about using BCrypt with Node.js [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1816,1820,1813],"tags":[1560,1666,1759,1761],"ppma_author":[9032],"class_list":["post-3911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-server","category-golang","category-security","tag-bcrypt","tag-encryption","tag-hash","tag-password"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Securely Storing Password Data in Couchbase with Golang and BCrypt<\/title>\n<meta name=\"description\" content=\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/password-data-couchbase-golang-bcrypt\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Securely Storing Password Data in Couchbase with Golang and BCrypt\" \/>\n<meta property=\"og:description\" content=\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/password-data-couchbase-golang-bcrypt\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-10T14:00:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:28:02+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\",\"datePublished\":\"2017-08-10T14:00:01+00:00\",\"dateModified\":\"2025-06-14T02:28:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"},\"wordCount\":337,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"bcrypt\",\"Encryption\",\"hash\",\"password\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Server\",\"GoLang\",\"Security\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\",\"name\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-08-10T14:00:01+00:00\",\"dateModified\":\"2025-06-14T02:28:02+00:00\",\"description\":\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Golang \ubc0f BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \ube44\ubc00\ubc88\ud638 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud558\uae30","description":"Golang \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ubc00\ubc88\ud638\uc640 \uac19\uc740 \ubbfc\uac10\ud55c \uc815\ubcf4\ub97c \ud574\uc2dc \ucc98\ub9ac\ud55c \ud6c4 Couchbase\uc640 \uac19\uc740 NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/password-data-couchbase-golang-bcrypt\/","og_locale":"ko_KR","og_type":"article","og_title":"Securely Storing Password Data in Couchbase with Golang and BCrypt","og_description":"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/password-data-couchbase-golang-bcrypt\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2017-08-10T14:00:01+00:00","article_modified_time":"2025-06-14T02:28:02+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Securely Storing Password Data in Couchbase with Golang and BCrypt","datePublished":"2017-08-10T14:00:01+00:00","dateModified":"2025-06-14T02:28:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"},"wordCount":337,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["bcrypt","Encryption","hash","password"],"articleSection":["Best Practices and Tutorials","Couchbase Server","GoLang","Security"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/","url":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/","name":"Golang \ubc0f BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \ube44\ubc00\ubc88\ud638 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud558\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-08-10T14:00:01+00:00","dateModified":"2025-06-14T02:28:02+00:00","description":"Golang \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c BCrypt\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ubc00\ubc88\ud638\uc640 \uac19\uc740 \ubbfc\uac10\ud55c \uc815\ubcf4\ub97c \ud574\uc2dc \ucc98\ub9ac\ud55c \ud6c4 Couchbase\uc640 \uac19\uc740 NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Securely Storing Password Data in Couchbase with Golang and BCrypt"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, \uac1c\ubc1c\uc790 \uc639\ud638\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=3911"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=3911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=3911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=3911"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=3911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}