{"id":52577,"date":"2025-09-30T15:42:43","date_gmt":"2025-09-30T12:42:43","guid":{"rendered":"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/"},"modified":"2025-09-30T15:42:43","modified_gmt":"2025-09-30T12:42:43","slug":"best-practices-for-using-bcrypt-in-hosting-environments","status":"publish","type":"post","link":"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/","title":{"rendered":"Best Practices for Using Bcrypt in Hosting Environments"},"content":{"rendered":"<p><\/p>\n<article><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Balancing_security_and_performance_with_bcrypt\" >Balancing security and performance with bcrypt<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Choose_and_test_the_cost_factor_work_factor\" >Choose and test the cost factor (work factor)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Design_for_hosting_constraints\" >Design for hosting constraints<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Implementation_best_practices\" >Implementation best practices<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Protect_against_side_effects_and_abuse\" >Protect against side effects and abuse<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Storage_rotation_and_migrations\" >Storage, rotation, and migrations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Use_pepper_carefully\" >Use pepper carefully<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Practical_checklist\" >Practical checklist<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Concise_summary\" >Concise summary<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#FAQs\" >FAQs<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#What_cost_factor_should_I_choose_for_bcrypt\" >What cost factor should I choose for bcrypt?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Is_bcrypt_appropriate_for_serverless_functions\" >Is bcrypt appropriate for serverless functions?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Should_I_add_a_pepper_in_addition_to_bcrypts_salt\" >Should I add a pepper in addition to bcrypt&#8217;s salt?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#How_do_I_migrate_to_a_higher_work_factor_or_a_different_algorithm\" >How do I migrate to a higher work factor or a different algorithm?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/infinitydomainhosting.com\/kb\/best-practices-for-using-bcrypt-in-hosting-environments\/#Can_bcrypt_handle_very_long_passwords_or_passphrases\" >Can bcrypt handle very long passwords or passphrases?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Balancing_security_and_performance_with_bcrypt\"><\/span>Balancing security and performance with bcrypt<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>\n      Bcrypt remains <a href=\"https:\/\/infinitydomainhosting.com\/kb\/how-to-configure-2fa-step-by-step\/\">a<\/a> solid choice for password hashing because it is slow by design and embeds a per-password salt inside the hash string. That slowness defends against brute-force attacks, but it also creates operational costs in <a href=\"https:\/\/www.a2hosting.com\/\" target=\"_blank\" rel=\"noopener\">hosted<\/a> environments. The right approach is to treat bcrypt configuration as an engineering trade-off: tune the work factor to make brute forcing impractical while keeping authentication <a href=\"https:\/\/www.hostinger.com\/tutorials\/what-is-network-latency\" target=\"_blank\" rel=\"noopener\">latency<\/a> and server load acceptable. That trade-off changes depending on whether you run on <a href=\"https:\/\/infinitydomainhosting.com\/web-hosting.php\">Shared Hosting<\/a>, a <a href=\"https:\/\/www.a2hosting.com\/dedicated-server-hosting\/\" target=\"_blank\" rel=\"noopener\">dedicated<\/a> VM, containers, or serverless functions, so measure and plan for your environment rather than relying on a single \u201crecommended\u201d number.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Choose_and_test_the_cost_factor_work_factor\"><\/span>Choose and test the cost factor (work factor)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      The cost factor (often called the log rounds) controls how expensive each bcrypt operation is. Each increment doubles the CPU time. Instead of picking a fixed number, measure. Run bcrypt hashes at several cost settings on the same class of machines you use in production, and choose a cost that makes a single hash take somewhere in the range your product can tolerate. For interactive sign-in flows many teams aim for roughly 100\u2013500 ms per hash; for high-volume systems a lower target may be necessary so you can still meet throughput and latency commitments. Whatever number you pick, store it with the hash (bcrypt does this automatically) so you can raise the cost later and support phased <a href=\"https:\/\/infinitydomainhosting.com\/index.php?rp=\/knowledgebase\/208\/How-to-migrate-your-website-to-a-new-hosting-provider.html\">migration<\/a>.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Design_for_hosting_constraints\"><\/span>Design for <a href=\"https:\/\/hostadvice.com\/\" target=\"_blank\" rel=\"noopener\">hosting<\/a> constraints<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Different <a href=\"https:\/\/hostadvice.com\/\" target=\"_blank\" rel=\"noopener\">hosting<\/a> models affect bcrypt behavior. On <a href=\"https:\/\/www.a2hosting.com\/web-hosting\/\" target=\"_blank\" rel=\"noopener\">shared hosting<\/a> you have less predictable CPU capacity and should avoid very high costs; prefer asynchronous or queued verification to avoid tying up a web process. On containers and VMs you can scale horizontally, but hashes still consume CPU and may cause contention with other services on the same <a href=\"https:\/\/www.a2hosting.com\/\" target=\"_blank\" rel=\"noopener\">host<\/a>. In serverless environments hashing is tricky because functions are billed for CPU time and cold starts can be exacerbated by heavy CPU tasks; consider offloading password hashing to a dedicated service or a background job if you expect heavy authentication traffic. For Kubernetes or orchestrated clusters, run dedicated worker pods for expensive cryptographic work to avoid evicting latency-sensitive services.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Implementation_best_practices\"><\/span>Implementation best practices<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Use a well-maintained bcrypt library for your language rather than a hand-rolled implementation. Libraries handle salt generation, version compatibility, and constant-time comparisons for you. Always let bcrypt generate a salt,bcrypt encodes the salt in the final result, so you do not need to store it separately. When verifying, use the library&#8217;s verify function rather than comparing raw outputs. Offload expensive hashing to background workers or thread pools when possible; blocking the main request-handling thread will increase latency and reduce throughput. If your platform supports asynchronous bcrypt primitives, use them for sign-up and verification flows.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Protect_against_side_effects_and_abuse\"><\/span>Protect against side effects and abuse<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Because bcrypt is CPU-bound, attackers can abuse your endpoints to force large numbers of hashes and overload your servers. Rate limit authentication endpoints, use progressive exponential backoff after failed attempts, and consider multi-factor authentication to reduce reliance on passwords. Instrument and monitor authentication throughput and CPU usage so you detect spikes caused by abuse or configuration changes. Also use constant-time comparison functions provided by crypto libraries to reduce the chance of timing-based attacks when comparing stored hashes and input.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Storage_rotation_and_migrations\"><\/span>Storage, rotation, and migrations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Store only the bcrypt hash, never plaintext. Because the cost factor is embedded in the hash string, you can increase the work factor by re-hashing at next successful login or by running a background migration that reads existing hashes and produces new ones after verifying credentials. Plan migrations so they do not cause large CPU spikes: schedule them at low-traffic windows or pace them using worker queues. If you need to move to a different algorithm (for example, Argon2 for greater memory-hardness), implement a phased migration where old hashes remain valid and are upgraded at next login or via a controlled background process.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Use_pepper_carefully\"><\/span>Use pepper carefully<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Adding a server-side &#8220;pepper&#8221; (a secret value stored separate from the database) can improve security against database breaches. If you adopt peppering, keep the pepper in a secure secret store or HSM and design your verification routine to fetch the pepper. Be mindful of availability: if the pepper store is unreachable you must still be able to authenticate users, so implement <a href=\"https:\/\/infinitydomainhosting.com\/kb\/understanding-website-caching-and-website-performance-optimization\/\">caching<\/a> with appropriate lifecycle and rotation plans. Pepper adds complexity to migrations and recovery, so document and test the process thoroughly.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Practical_checklist\"><\/span>Practical checklist<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<ul><\/p>\n<li>Measure bcrypt timings on production-like hardware and pick a cost factor that meets your latency and security goals.<\/li>\n<p><\/p>\n<li>Use well-maintained bcrypt libraries; avoid rolling your own cryptography.<\/li>\n<p><\/p>\n<li>Offload hashing to non-blocking threads, background workers, or a dedicated auth service if hashing creates contention.<\/li>\n<p><\/p>\n<li>Rate limit authentication endpoints and add exponential backoff to slow attackers.<\/li>\n<p><\/p>\n<li>Store only the bcrypt hash and automate gradual re-hashing for cost upgrades or algorithm migrations.<\/li>\n<p><\/p>\n<li>Consider a pepper stored in a secure secrets manager if you need extra protection against database compromise.<\/li>\n<p><\/p>\n<li>Monitor CPU, latency, and authentication failure rates to detect misuse or configuration issues.<\/li>\n<p>\n    <\/ul>\n<p><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Concise_summary\"><\/span>Concise summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>\n      bcrypt works well in hosted environments when you treat it as a tunable resource. Measure hashing time on production-like machines, tune the cost factor for acceptable latency, and avoid blocking request threads by using worker pools or background jobs. Protect authentication endpoints with rate limiting and monitoring, store only the bcrypt hash, and plan migrations or upgrades deliberately. Small design choices,using a maintained library, separating heavy work from latency-sensitive services, and securing any peppers,make the difference between secure and operationally stable deployments.\n    <\/p>\n<p><\/p>\n<h2><span class=\"ez-toc-section\" id=\"FAQs\"><\/span>FAQs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_cost_factor_should_I_choose_for_bcrypt\"><\/span>What cost factor should I choose for bcrypt?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      There is no universal number. Measure hashing time on your actual <a href=\"https:\/\/hostadvice.com\/\" target=\"_blank\" rel=\"noopener\">hosting<\/a> hardware and aim for a single hash duration that matches your latency tolerance (commonly in the 100\u2013500 ms range for interactive logins). For high-volume systems you may need a lower target or to move hashing off the hot path.\n    <\/p>\n<p><!--KB_CAT_BLOCK--><\/p>\n<figure class=\"kb-cat-placeholder\" style=\"margin:1.75rem 0;display:block;\">\n<div class=\"kb-cat-wrap\" style=\"position:relative; overflow:hidden; border-radius:12px; box-shadow:0 10px 36px rgba(0,0,0,0.14);\"><img src=\"https:\/\/infinitydomainhosting.com\/kb\/assets\/img\/cat-default.webp\" alt=\"Best Practices for Using Bcrypt in Hosting Environments\" loading=\"lazy\" decoding=\"async\" style=\"max-width:100%;height:auto;display:block;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,0.12);\" \/><\/p>\n<div class=\"kb-cat-gradient\" style=\"position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,23,60,0.66) 0%, rgba(11,30,70,0.45) 40%, rgba(11,30,70,0.15) 100%);\"><\/div>\n<div class=\"kb-cat-textbox\" style=\"position:absolute; inset:auto 5% 7% 5%; color:#fff; text-align:center; display:flex; flex-direction:column; gap:.4rem; align-items:center; justify-content:flex-end;\">\n<div class=\"kb-cat-title\" style=\"font-weight:800; font-size:clamp(20px,3.6vw,34px); line-height:1.2; letter-spacing:.2px; text-shadow:0 1px 2px rgba(0,0,0,.35);\">Best Practices for Using Bcrypt in Hosting Environments<\/div>\n<div class=\"kb-cat-meta\" style=\"opacity:1; font-weight:600; font-size:clamp(13px,2.6vw,16px); line-height:1.45; text-shadow:0 1px 2px rgba(0,0,0,.28);\">Balancing security and performance with bcrypt Bcrypt remains a solid choice for password hashing because it is slow by design and embeds a per-password salt inside the hash string. That\u2026<\/div>\n<div class=\"kb-cat-desc\" style=\"opacity:1; font-weight:500; font-size:clamp(12px,2.4vw,15px); line-height:1.5; max-width:900px; text-wrap:balance; text-shadow:0 1px 2px rgba(0,0,0,.25);\">Databases<\/div>\n<\/div>\n<\/div>\n<\/figure>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Is_bcrypt_appropriate_for_serverless_functions\"><\/span>Is bcrypt appropriate for serverless functions?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      You can use bcrypt in serverless environments, but be careful: CPU-heavy tasks increase cost and may worsen cold starts. Consider delegating hashing to a dedicated service, background job, or use lighter cost settings combined with additional mitigations like rate limiting and multi-factor authentication.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Should_I_add_a_pepper_in_addition_to_bcrypts_salt\"><\/span>Should I add a pepper in addition to bcrypt&#8217;s salt?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      A pepper can help if an attacker obtains your password database but not your secrets. If you add a pepper, store it in a secure secrets manager and plan for failure modes and rotation. Peppering increases complexity and should be used only after weighing operational costs.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_migrate_to_a_higher_work_factor_or_a_different_algorithm\"><\/span>How do I <a href=\"https:\/\/support.hostinger.com\/en\/articles\/4455931-how-to-migrate-a-website-to-hostinger\" target=\"_blank\" rel=\"noopener\">migrate<\/a> to a higher work factor or a different algorithm?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Implement a gradual migration: re-hash passwords at next successful login with the new settings, or run a controlled background migration that verifies and re-hashes passwords while pacing CPU usage. If moving to another algorithm, keep backward compatibility until all active accounts are <a href=\"https:\/\/support.hostinger.com\/en\/articles\/4455931-how-to-migrate-a-website-to-hostinger\" target=\"_blank\" rel=\"noopener\">migrated<\/a>.\n    <\/p>\n<p><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_bcrypt_handle_very_long_passwords_or_passphrases\"><\/span>Can bcrypt handle very long passwords or passphrases?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><\/p>\n<p>\n      Bcrypt was designed for typical password sizes; some implementations truncate inputs (commonly at 72 bytes). Be aware of your language library&#8217;s behavior and consider hashing long passphrases first with a slow or keyed hash if you must support extremely long inputs. Always test the exact library behavior before production use.\n    <\/p>\n<p>\n  <\/article>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Balancing security and performance with bcrypt Bcrypt remains a solid choice for password hashing because it is slow by design and embeds&hellip;<\/p>\n","protected":false},"author":1,"featured_media":52578,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[8,4593,1,4594,3,5,10,11,7,88],"tags":[586,13308,473,13407,13234,677,10632,13391,13143,11181,13304,10668,262],"class_list":["post-52577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website-security","category-databases","category-general","category-networking","category-php-scripts","category-seo","category-servers","category-support","category-web-design","category-web-hosting","tag-authentication","tag-bcrypt","tag-best-practices","tag-best-practices-for-using-bcrypt-in-hosting-environments","tag-hashing-algorithms","tag-hosting","tag-hosting-environments","tag-key-stretching","tag-password-hashing","tag-password-security","tag-salt","tag-server-security","tag-web-hosting"],"_links":{"self":[{"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/posts\/52577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/comments?post=52577"}],"version-history":[{"count":1,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/posts\/52577\/revisions"}],"predecessor-version":[{"id":52579,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/posts\/52577\/revisions\/52579"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/media\/52578"}],"wp:attachment":[{"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/media?parent=52577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/categories?post=52577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infinitydomainhosting.com\/kb\/wp-json\/wp\/v2\/tags?post=52577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}