{"id":1696,"date":"2025-09-25T06:51:06","date_gmt":"2025-09-25T06:51:06","guid":{"rendered":"https:\/\/bogdansergachev23.thkit.ee\/wp\/?page_id=1696"},"modified":"2025-09-25T06:58:31","modified_gmt":"2025-09-25T06:58:31","slug":"harjutus-12-kuidas-genereerida-turvaline-rasi","status":"publish","type":"page","link":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/","title":{"rendered":"Harjutus 12: Kuidas genereerida turvaline r\u00e4si?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Teeme kaust nimega naiteks &#8220;<strong>passwordHash<\/strong>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kirjuta &#8220;<strong>npm install bcrypt&#8221;<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"80\" src=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png\" alt=\"\" class=\"wp-image-1698\" srcset=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png 667w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7-300x36.png 300w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7-150x18.png 150w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7-624x75.png 624w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Loo uus fail &#8220;<strong>generateHash.js<\/strong>&#8220;<br><br><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const bcrypt = require(\"bcrypt\")\nconst myPass = \"\"\n\nconsole.time(\"Time to generate salt:\")\nconst salt = bcrypt.genSaltSync(10)\nconsole.log(\"This is your salt: \" + salt)\nconsole.timeEnd(\"Time to generate salt\")\n\nconsole.time(\"Time to generate hash\")\nconst hashedPass = bcrypt.hashSync(myPass, salt)\nconsole.log(myPass + \" is your password &amp; this is your password after hashing it: \" + hashedPass)\nconsole.timeEnd(\"Time to generate hash\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">const<\/span><span style=\"color: #F8F8F2\"> bcrypt <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">require<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">bcrypt<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">const<\/span><span style=\"color: #F8F8F2\"> myPass <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #E9F284\">&quot;&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">time<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">Time to generate salt:<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">const<\/span><span style=\"color: #F8F8F2\"> salt <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> bcrypt.<\/span><span style=\"color: #50FA7B\">genSaltSync<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">10<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">log<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">This is your salt: <\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> salt)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">timeEnd<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">Time to generate salt<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">time<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">Time to generate hash<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">const<\/span><span style=\"color: #F8F8F2\"> hashedPass <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> bcrypt.<\/span><span style=\"color: #50FA7B\">hashSync<\/span><span style=\"color: #F8F8F2\">(myPass, salt)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">log<\/span><span style=\"color: #F8F8F2\">(myPass <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\"> is your password &amp; this is your password after hashing it: <\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> hashedPass)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">console.<\/span><span style=\"color: #50FA7B\">timeEnd<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">Time to generate hash<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">ja terminal&#8217;is kirjutame &#8220;<strong>node generateHash.js<\/strong>&#8220;<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"165\" src=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-1024x165.png\" alt=\"\" class=\"wp-image-1699\" srcset=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-1024x165.png 1024w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-300x48.png 300w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-768x124.png 768w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-150x24.png 150w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59-624x101.png 624w, https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/9BA6932D-909C-4474-8B1D-072E7FC37B59.png 1102w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kokkuv\u00f5te:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parooli soolamine (Password salting) <\/strong>&#8211;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">lisab praooli ette v\u00f5i taha juhuslikke m\u00e4rke enne parooli r\u00e4si arvutamist, et muuta tegelik parool raskemini \u00e4ratuntavaks ja kaitsta seda lihtsate r\u00fcnnakute<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parooli r\u00e4si (Password hashing) <\/strong>&#8211;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on \u00fchesuunaline protsess, mis muudab parooli r\u00e4si kujul olevaks tekstiks, kasutades, spetsiaalseid r\u00e4siarvutusalgoritme<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Teeme kaust nimega naiteks &#8220;passwordHash&#8220; Kirjuta &#8220;npm install bcrypt&#8221; Loo uus fail &#8220;generateHash.js&#8220; ja terminal&#8217;is kirjutame &#8220;node generateHash.js&#8220; Kokkuv\u00f5te: Parooli soolamine (Password salting) &#8211; lisab praooli ette v\u00f5i taha juhuslikke m\u00e4rke enne parooli r\u00e4si arvutamist, et muuta tegelik parool raskemini \u00e4ratuntavaks ja kaitsta seda lihtsate r\u00fcnnakute Parooli r\u00e4si (Password hashing) &#8211; on \u00fchesuunaline protsess, mis [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1696","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/\" \/>\n<meta property=\"og:locale\" content=\"et_EE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio\" \/>\n<meta property=\"og:description\" content=\"Teeme kaust nimega naiteks &#8220;passwordHash&#8220; Kirjuta &#8220;npm install bcrypt&#8221; Loo uus fail &#8220;generateHash.js&#8220; ja terminal&#8217;is kirjutame &#8220;node generateHash.js&#8220; Kokkuv\u00f5te: Parooli soolamine (Password salting) &#8211; lisab praooli ette v\u00f5i taha juhuslikke m\u00e4rke enne parooli r\u00e4si arvutamist, et muuta tegelik parool raskemini \u00e4ratuntavaks ja kaitsta seda lihtsate r\u00fcnnakute Parooli r\u00e4si (Password hashing) &#8211; on \u00fchesuunaline protsess, mis [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Bogdan Sergachev &otilde;pimapp | portfoolio\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-25T06:58:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"667\" \/>\n\t<meta property=\"og:image:height\" content=\"80\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/\",\"url\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/\",\"name\":\"Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png\",\"datePublished\":\"2025-09-25T06:51:06+00:00\",\"dateModified\":\"2025-09-25T06:58:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/#breadcrumb\"},\"inLanguage\":\"et\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"et\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png\",\"contentUrl\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png\",\"width\":667,\"height\":80},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/harjutus-12-kuidas-genereerida-turvaline-rasi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Harjutus 12: Kuidas genereerida turvaline r\u00e4si?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/\",\"name\":\"Bogdan Sergachev &otilde;pimapp | portfoolio\",\"description\":\"Noorem Tarkvaraarendaja eriala\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bogdansergachev23.thkit.ee\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"et\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio","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:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/","og_locale":"et_EE","og_type":"article","og_title":"Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio","og_description":"Teeme kaust nimega naiteks &#8220;passwordHash&#8220; Kirjuta &#8220;npm install bcrypt&#8221; Loo uus fail &#8220;generateHash.js&#8220; ja terminal&#8217;is kirjutame &#8220;node generateHash.js&#8220; Kokkuv\u00f5te: Parooli soolamine (Password salting) &#8211; lisab praooli ette v\u00f5i taha juhuslikke m\u00e4rke enne parooli r\u00e4si arvutamist, et muuta tegelik parool raskemini \u00e4ratuntavaks ja kaitsta seda lihtsate r\u00fcnnakute Parooli r\u00e4si (Password hashing) &#8211; on \u00fchesuunaline protsess, mis [&hellip;]","og_url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/","og_site_name":"Bogdan Sergachev &otilde;pimapp | portfoolio","article_modified_time":"2025-09-25T06:58:31+00:00","og_image":[{"width":667,"height":80,"url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/","url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/","name":"Harjutus 12: Kuidas genereerida turvaline r\u00e4si? - Bogdan Sergachev &otilde;pimapp | portfoolio","isPartOf":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/#primaryimage"},"image":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/#primaryimage"},"thumbnailUrl":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png","datePublished":"2025-09-25T06:51:06+00:00","dateModified":"2025-09-25T06:58:31+00:00","breadcrumb":{"@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/#breadcrumb"},"inLanguage":"et","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/"]}]},{"@type":"ImageObject","inLanguage":"et","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/#primaryimage","url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png","contentUrl":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/E6B780F3-ECD6-42E6-BE19-420F7C5D7EC7.png","width":667,"height":80},{"@type":"BreadcrumbList","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/harjutus-12-kuidas-genereerida-turvaline-rasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bogdansergachev23.thkit.ee\/wp\/"},{"@type":"ListItem","position":2,"name":"Harjutus 12: Kuidas genereerida turvaline r\u00e4si?"}]},{"@type":"WebSite","@id":"https:\/\/bogdansergachev23.thkit.ee\/wp\/#website","url":"https:\/\/bogdansergachev23.thkit.ee\/wp\/","name":"Bogdan Sergachev &otilde;pimapp | portfoolio","description":"Noorem Tarkvaraarendaja eriala","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bogdansergachev23.thkit.ee\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"et"}]}},"_links":{"self":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/comments?post=1696"}],"version-history":[{"count":3,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1696\/revisions"}],"predecessor-version":[{"id":1705,"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1696\/revisions\/1705"}],"wp:attachment":[{"href":"https:\/\/bogdansergachev23.thkit.ee\/wp\/wp-json\/wp\/v2\/media?parent=1696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}