← āļāļĨāļąāļšāđ„āļ›āļ„āļđāđˆāļĄāļ·āļ­

āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 URL Safe: āļĄāļąāļ™āļ„āļ·āļ­āļ­āļ°āđ„āļĢāđāļĨāļ°āļ—āļģāđ„āļĄāļ–āļķāļ‡āļŠāļģāļ„āļąāļ

· āđāļ—āđ‡āļ: base64, url-safe, base64url, jwt, encoding, web-development, api

āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL (āđ€āļĢāļĩāļĒāļāļ­āļĩāļāļ­āļĒāđˆāļēāļ‡āļ§āđˆāļē Base64url) āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļšāļĒāđˆāļ­āļĒāļ‚āļ­āļ‡ Base64 āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļĩāđˆāđāļ—āļ™āļ—āļĩāđˆāļ­āļąāļāļ‚āļĢāļ°āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļžāļīāđ€āļĻāļĐāđƒāļ™ URL āđāļĨāļ°āļŠāļ·āđˆāļ­āđ„āļŸāļĨāđŒāļ”āđ‰āļ§āļĒāļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ Base64 āļĄāļēāļ•āļĢāļāļēāļ™āđƒāļŠāđ‰ + āđāļĨāļ° / āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡āļŠāļļāļ”āļ­āļąāļāļ‚āļĢāļ° 64 āļ•āļąāļ§ āļĢāļ§āļĄāļ–āļķāļ‡ = āļŠāļģāļŦāļĢāļąāļš padding āđāļĨāļ°āļ—āļąāđ‰āļ‡āļŠāļēāļĄāļ•āļąāļ§āļĄāļĩāļ›āļąāļāļŦāļēāđƒāļ™ URL, query strings āđāļĨāļ°āļžāļēāļ˜āđ„āļŸāļĨāđŒ

Base64url āđāļāđ‰āļ›āļąāļāļŦāļēāļ™āļĩāđ‰āļ”āđ‰āļ§āļĒāļāļēāļĢāđāļ—āļ™āļ—āļĩāđˆāļ‡āđˆāļēāļĒāđ† āļŠāļ­āļ‡āļ­āļĒāđˆāļēāļ‡:

| Base64 āļĄāļēāļ•āļĢāļāļēāļ™ | Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL | |-----------------|-----------------| | + (āļšāļ§āļ) | - (āļĨāļš) | | / (āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ—āļąāļš) | _ (āļ‚āļĩāļ”āļĨāđˆāļēāļ‡) | | = (padding) | āļ–āļđāļāļĨāļ°āđ„āļ§āđ‰ (āđ‚āļ”āļĒāļ›āļāļ•āļī) |

āļ—āļģāđ„āļĄ Base64 āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļģāđƒāļŦāđ‰ URL āđ€āļŠāļĩāļĒāļŦāļēāļĒ

āđ€āļĄāļ·āđˆāļ­āļŠāļ•āļĢāļīāļ‡āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 āļ—āļĩāđˆāļĄāļĩ + āļŦāļĢāļ·āļ­ / āļ›āļĢāļēāļāļāđƒāļ™ URL āļžāļĪāļ•āļīāļāļĢāļĢāļĄāļ‚āļ­āļ‡āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ„āļēāļ”āđ€āļ”āļēāđ„āļ”āđ‰

āļ›āļąāļāļŦāļēāļ‚āļ­āļ‡ +

āđƒāļ™ URL query strings āļ­āļąāļāļ‚āļĢāļ° + āļ–āļđāļāļ•āļĩāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ­āļ‡āļ§āđˆāļēāļ‡ (space) āļžāļĪāļ•āļīāļāļĢāļĢāļĄāļ™āļĩāđ‰āļĄāļēāļˆāļēāļāļ‚āđ‰āļ­āļāļģāļŦāļ™āļ” application/x-www-form-urlencoded āđāļĨāļ°āļ—āļģāđƒāļŦāđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ–āļ­āļ”āļĢāļŦāļąāļŠāļĄāļĩāļŠāđˆāļ­āļ‡āļ§āđˆāļēāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļ„āļēāļ”āļ„āļīāļ”

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™ āļŠāļ•āļĢāļīāļ‡ Base64 āļ­āļĒāđˆāļēāļ‡ Pj4+Pz8/Pw== āļĄāļĩāļ­āļąāļāļ‚āļĢāļ° + āļŦāļēāļāļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļ›āļĢāļēāļāļāđƒāļ™āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ URL ?token=Pj4+Pz8/Pw== āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āđ€āļŦāđ‡āļ™ ?token=Pj4 Pz8/Pw== — + āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļŠāđˆāļ­āļ‡āļ§āđˆāļēāļ‡

āļ›āļąāļāļŦāļēāļ‚āļ­āļ‡ /

āđƒāļ™ URL paths āļ­āļąāļāļ‚āļĢāļ° / āđ€āļ›āđ‡āļ™āļ•āļąāļ§āļ„āļąāđˆāļ™āļžāļēāļ˜ āļŠāļ•āļĢāļīāļ‡ Base64 āļ­āļĒāđˆāļēāļ‡ ab/CD+Ef== āļĄāļĩ / āļ—āļĩāđˆāļˆāļ°āļ–āļđāļāļ•āļĩāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļĢāļ°āļ”āļąāļšāđ„āļ”āđ€āļĢāļāļ—āļ­āļĢāļĩ āļŦāļēāļāļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļ›āļĢāļēāļāļāđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ URL āļ—āļąāđ‰āļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ­āļēāļˆāļ•āļĩāļ„āļ§āļēāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļœāļīāļ”

āļ›āļąāļāļŦāļēāļ‚āļ­āļ‡ =

āļ­āļąāļāļ‚āļĢāļ° = āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļ„āļđāđˆ key-value āđƒāļ™ query strings āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒ = āļ—āļĩāđˆāļ•āđˆāļ­āļ—āđ‰āļēāļĒāđƒāļ™ ?data=SGVsbG8= āļ­āļēāļˆāļ„āļĨāļļāļĄāđ€āļ„āļĢāļ·āļ­ â€” = āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡ Base64 padding āļŦāļĢāļ·āļ­āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ‚āļ­āļ‡ query parameter?

āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđ€āļ›āļ­āļĢāđŒāđ€āļ‹āđ‡āļ™āļ•āđŒ (percent-encoding) āļŠāļēāļĄāļēāļĢāļ–āđāļāđ‰āđ„āļ‚āļ›āļąāļāļŦāļēāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āđ„āļ”āđ‰ (+ āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ %2B, / āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ %2F) āļĄāļąāļ™āļ—āļģāđƒāļŦāđ‰āļ„āļ§āļēāļĄāļĒāļēāļ§āļŠāļ•āļĢāļīāļ‡āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđāļĨāļ°āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ”āļĩāļšāļąāļāļĒāļēāļāļ‚āļķāđ‰āļ™ Base64url āđ€āļ›āđ‡āļ™āđ‚āļ‹āļĨāļđāļŠāļąāļ™āļ—āļĩāđˆāļŠāļ°āļ­āļēāļ”āļāļ§āđˆāļē

Base64url āļ—āļģāļ‡āļēāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ

Base64url āļ–āļđāļāļāļģāļŦāļ™āļ”āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāđƒāļ™ RFC 4648 Section 5 āļĄāļąāļ™āđƒāļŠāđ‰āļ­āļąāļĨāļāļ­āļĢāļīāļ—āļķāļĄāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļāļąāļš Base64 āļĄāļēāļ•āļĢāļāļēāļ™ â€” 3 āđ„āļšāļ•āđŒāļāļĨāļēāļĒāđ€āļ›āđ‡āļ™ 4 āļ­āļąāļāļ‚āļĢāļ° â€” āđāļ•āđˆāļĄāļĩāļāļēāļĢāđāļ—āļ™āļ—āļĩāđˆāļ­āļąāļāļ‚āļĢāļ°āļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§āļ—āļĩāđˆāļ•āļģāđāļŦāļ™āđˆāļ‡ 62 āđāļĨāļ° 63 āļ‚āļ­āļ‡āļŠāļļāļ”āļ­āļąāļāļ‚āļĢāļ°:

  • āļ”āļąāļŠāļ™āļĩāļŠāļļāļ”āļ­āļąāļāļ‚āļĢāļ° 62: + → - (āļĨāļš)
  • āļ”āļąāļŠāļ™āļĩāļŠāļļāļ”āļ­āļąāļāļ‚āļĢāļ° 63: / → _ (āļ‚āļĩāļ”āļĨāđˆāļēāļ‡)

Padding (=) āļĄāļąāļāļ–āļđāļāļ•āļąāļ”āļ­āļ­āļ āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļŠāļēāļĄāļēāļĢāļ–āļ­āļ™āļļāļĄāļēāļ™āđ„āļ”āđ‰āļˆāļēāļāļ„āļ§āļēāļĄāļĒāļēāļ§āļŠāļ•āļĢāļīāļ‡āđ€āļĄāļ·āđˆāļ­āļ–āļ­āļ”āļĢāļŦāļąāļŠ āļŠāļ•āļĢāļīāļ‡ Base64url āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļš URL āļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āđ€āļŠāļĄāļ­āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡ escape āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ

āļāđˆāļ­āļ™āđāļĨāļ°āļŦāļĨāļąāļ‡

āļ™āļĩāđˆāļ„āļ·āļ­āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ”āļđāđ€āļŦāļĄāļ·āļ­āļ™āđƒāļ™āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļĢāļđāļ›āđāļšāļš:

Standard:  Pj4+Pz8/Pw==
URL-safe:  Pj4-Pz8_Pw

āļ—āļĩāđˆāļ—āļĩāđˆ Base64url āļ–āļđāļāđƒāļŠāđ‰

JSON Web Tokens (JWT)

JWT āđ€āļ›āđ‡āļ™āļœāļđāđ‰āđƒāļŠāđ‰ Base64url āļ—āļĩāđˆāđ‚āļ”āļ”āđ€āļ”āđˆāļ™āļ—āļĩāđˆāļŠāļļāļ” āļ—āļļāļ JWT āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļŠāļēāļĄāļŠāđˆāļ§āļ™ â€” header, payload āđāļĨāļ° signature — āđāļ•āđˆāļĨāļ°āļŠāđˆāļ§āļ™āļ–āļđāļāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ”āđ‰āļ§āļĒ Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL āđāļĨāļ°āļ„āļąāđˆāļ™āļ”āđ‰āļ§āļĒāļˆāļļāļ”:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNqP0m2iTgCjD0

āļŠāļąāļ‡āđ€āļāļ•āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ‚āļĩāļ”āđāļĨāļ°āļ‚āļĩāļ”āļĨāđˆāļēāļ‡ â€” āđ„āļĄāđˆāļĄāļĩāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļšāļ§āļāļŦāļĢāļ·āļ­āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ—āļąāļš āļŦāļēāļ JWT āđƒāļŠāđ‰ Base64 āļĄāļēāļ•āļĢāļāļēāļ™ āđ‚āļ—āđ€āļ„āđ‡āļ™āļˆāļ°āđ€āļŠāļĩāļĒāļŦāļēāļĒāđ€āļĄāļ·āđˆāļ­āļŠāđˆāļ‡āļœāđˆāļēāļ™āđ€āļ›āđ‡āļ™āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ URL āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāđƒāļŠāđ‰āļšāđˆāļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

OAuth āđāļĨāļ° OpenID Connect

āļ—āļąāđ‰āļ‡ OAuth 2.0 āđāļĨāļ° OpenID Connect āļžāļķāđˆāļ‡āļžāļē JWT āļŠāļģāļŦāļĢāļąāļš access tokens āđāļĨāļ° ID tokens āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64url āđ€āļ›āđ‡āļ™āļžāļ·āđ‰āļ™āļāļēāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆ authorization code flow, implicit flow āđāļĨāļ° client credentials flow āļ•āđˆāļēāļ‡āļāđ‡āļŠāđˆāļ‡āđ‚āļ—āđ€āļ„āđ‡āļ™āļ—āļĩāđˆāđƒāļŠāđ‰ Base64url

Web API āđāļĨāļ° Query Parameters

REST āđāļĨāļ° GraphQL API āļˆāļģāļ™āļ§āļ™āļĄāļēāļāļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 āđƒāļ™ query parameters āļŠāļģāļŦāļĢāļąāļš pagination cursors, āļ•āļąāļ§āļāļĢāļ­āļ‡ āļŦāļĢāļ·āļ­ payload āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64url āļ—āļģāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ URL āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļˆāļēāļāđ‚āļĨāļāļˆāļĢāļīāļ‡ â€” API cursor pagination:

GET /api/users?cursor=MjAyNC0wMS0xNVQxMDozMDowMFo

GitHub's API āđƒāļŠāđ‰āļĢāļđāļ›āđāļšāļšāļ™āļĩāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļšāđˆāļ‡āļŦāļ™āđ‰āļēāļŠāļļāļ”āļœāļĨāļĨāļąāļžāļ˜āđŒāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

āļŠāļ·āđˆāļ­āđ„āļŸāļĨāđŒāđāļĨāļ°āļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāđ„āļŸāļĨāđŒ

āļŠāļ•āļĢāļīāļ‡ Base64url āđ€āļ›āđ‡āļ™āļŠāļ·āđˆāļ­āđ„āļŸāļĨāđŒāļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒāđ€āļžāļĢāļēāļ°āđ„āļĄāđˆāļĄāļĩāļ•āļąāļ§āļ„āļąāđˆāļ™āļžāļēāļ˜ (/), āđ„āļĄāđˆāļĄāļĩāļ­āļąāļāļ‚āļĢāļ°āļžāļīāđ€āļĻāļĐāļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļĢāļ°āļšāļšāđ„āļŸāļĨāđŒāļŠāļąāļšāļŠāļ™ āđāļĨāļ°āđ„āļĄāđˆāļĄāļĩāļ­āļąāļāļ‚āļĢāļ°āļ—āļĩāđˆāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļšāļ™ Windows (:, *, ? āļŊāļĨāļŊ)

Content Delivery Networks āđāļĨāļ° Cache Keys

CDN āđāļĨāļ°āļŠāļąāđ‰āļ™āđāļ„āļŠāļĄāļąāļāđƒāļŠāđ‰āļ„āđˆāļēāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64url āđ€āļ›āđ‡āļ™ cache keys Base64 āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļĩāđˆāļĄāļĩ / āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļĨāļģāļ”āļąāļšāļŠāļąāđ‰āļ™āđ„āļ”āđ€āļĢāļāļ—āļ­āļĢāļĩāļ›āļĨāļ­āļĄāđƒāļ™ namespace āļ‚āļ­āļ‡āđāļ„āļŠ āļ™āļģāđ„āļ›āļŠāļđāđˆ keys āļ—āļĩāđˆāļ„āļĨāļļāļĄāđ€āļ„āļĢāļ·āļ­

āļāļēāļĢāđāļ›āļĨāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ Base64 āļĄāļēāļ•āļĢāļāļēāļ™āđāļĨāļ° Base64url

āļāļēāļĢāđāļ›āļĨāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļŠāļ­āļ‡āļĢāļđāļ›āđāļšāļšāļĒāđˆāļ­āļĒāļ™āļąāđ‰āļ™āļ•āļĢāļ‡āđ„āļ›āļ•āļĢāļ‡āļĄāļēāđƒāļ™āļ—āļļāļāļ āļēāļĐāļē:

JavaScript

// Standard Base64 to URL-safe Base64
function base64ToBase64url(base64) {
  return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
}

// URL-safe Base64 to Standard Base64
function base64urlToBase64(base64url) {
  let result = base64url.replace(/-/g, '+').replace(/_/g, '/');
  // Restore padding
  while (result.length % 4) {
    result += '=';
  }
  return result;
}

Node.js

Node.js āļĢāļ­āļ‡āļĢāļąāļš Base64url āđ‚āļ”āļĒāļ•āļĢāļ‡āļ•āļąāđ‰āļ‡āđāļ•āđˆāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 15.7.0:

// Encode to Base64url
const encodedUrl = Buffer.from('Hello, world!').toString('base64url');
console.log(encodedUrl);
// Output: SGVsbG8sIHdvcmxkIQ

// Decode from Base64url
const decoded = Buffer.from(encodedUrl, 'base64url').toString('utf-8');
console.log(decoded);
// Output: Hello, world!

Python

import base64

# Encode to Base64url
encoded = base64.urlsafe_b64encode(b"Hello, world!")
print(encoded.decode())
# Output: SGVsbG8sIHdvcmxkIQ==

# Decode from Base64url
decoded = base64.urlsafe_b64decode(encoded)
print(decoded.decode())
# Output: Hello, world!

āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰ Base64 āļĄāļēāļ•āļĢāļāļēāļ™ āđ€āļ—āļĩāļĒāļšāļāļąāļš Base64url

āđƒāļŠāđ‰ Base64 āļĄāļēāļ•āļĢāļāļēāļ™āđ€āļĄāļ·āđˆāļ­:

  • āđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđ„āļŸāļĨāđŒāđāļ™āļšāļ­āļĩāđ€āļĄāļĨ (āļĄāļēāļ•āļĢāļāļēāļ™ MIME āļ•āđ‰āļ­āļ‡āļāļēāļĢ)
  • āļŠāļĢāđ‰āļēāļ‡ data URLs āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļāļąāļ‡āđƒāļ™ HTML/CSS
  • āļˆāļąāļ”āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡ URL āđ„āļĄāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡
  • āđ‚āļ•āđ‰āļ•āļ­āļšāļāļąāļšāļĢāļ°āļšāļšāđ€āļāđˆāļēāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡ Base64 āļĄāļēāļ•āļĢāļāļēāļ™

āđƒāļŠāđ‰ Base64url āđ€āļĄāļ·āđˆāļ­:

  • āļŠāļĢāđ‰āļēāļ‡āļŦāļĢāļ·āļ­ parse JWT tokens
  • āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđƒāļ™ URL query parameters āļŦāļĢāļ·āļ­ path segments
  • āļŠāļĢāđ‰āļēāļ‡āļŠāļ·āđˆāļ­āđ„āļŸāļĨāđŒāļˆāļēāļāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩ
  • āļŠāļĢāđ‰āļēāļ‡ cache keys āļŦāļĢāļ·āļ­ identifiers
  • āļ—āļģāļ‡āļēāļ™āļāļąāļš OAuth tokens āļŦāļĢāļ·āļ­ OpenID Connect

āļĨāļ­āļ‡āđƒāļŠāđ‰āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL āļ­āļ­āļ™āđ„āļĨāļ™āđŒ

āđƒāļŠāđ‰ āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđāļĨāļ°āļ–āļ­āļ”āļĢāļŦāļąāļŠ Base64 āļ­āļ­āļ™āđ„āļĨāļ™āđŒāļŸāļĢāļĩ āđ€āļžāļ·āđˆāļ­āđāļ›āļĨāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĢāļđāļ›āđāļšāļš Base64 āļĄāļēāļ•āļĢāļāļēāļ™āđāļĨāļ° Base64 āđāļšāļšāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļš URL āļ§āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļ„āļļāļ“ āđ€āļĨāļ·āļ­āļāļĢāļđāļ›āđāļšāļšāļĒāđˆāļ­āļĒāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ āđāļĨāļ°āļĢāļąāļšāļœāļĨāļĨāļąāļžāļ˜āđŒāļ—āļąāļ™āļ—āļĩ

āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ Base64 URL Safe: āļĄāļąāļ™āļ„āļ·āļ­āļ­āļ°āđ„āļĢāđāļĨāļ°āļ—āļģāđ„āļĄāļ–āļķāļ‡āļŠāļģāļ„āļąāļ - CoolTool