Generated on February 14 2026 07:16 AM
Old data? UPDATE !
The score is 40/100
Title
GitHub - jwtk/jjwt: Java JWT: JSON Web Token for Java and Android
Length : 65
Perfect, your title contains between 10 and 70 characters.
Description
Java JWT: JSON Web Token for Java and Android. Contribute to jwtk/jjwt development by creating an account on GitHub.
Length : 116
Great, your meta description contains between 70 and 160 characters.
Keywords
Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.
Og Meta Properties
Good, your page take advantage of Og Properties.
| Property | Content |
|---|---|
| image | https://repository-images.githubusercontent.com/23982180/be9cc080-a4c4-11e9-8838-bc75cb09f014 |
| image:alt | Java JWT: JSON Web Token for Java and Android. Contribute to jwtk/jjwt development by creating an account on GitHub. |
| site_name | GitHub |
| type | object |
| title | GitHub - jwtk/jjwt: Java JWT: JSON Web Token for Java and Android |
| url | https://github.com/jwtk/jjwt |
| description | Java JWT: JSON Web Token for Java and Android. Contribute to jwtk/jjwt development by creating an account on GitHub. |
Headings
| H1 | H2 | H3 | H4 | H5 | H6 |
| 5 | 32 | 65 | 50 | 15 | 0 |
Images
We found 26 images on this web page.
Good, most or all of your images have alt attributes.
Text/HTML Ratio
Ratio : 0%
This page's ratio of text to HTML code is below 15 percent, this means that your website probably needs more text content.
Flash
Perfect, no Flash content has been detected on this page.
Iframe
Great, there are no Iframes detected on this page.
URL Rewrite
Bad. Your links have query string.
Underscores in the URLs
We have detected underscores in your URLs. You should rather use hyphens to optimize your SEO.
In-page links
We found a total of 300 links including 9 link(s) to files
| Anchor | Type | Juice |
|---|---|---|
| Skip to content | Internal | Passing Juice |
| Sign in | Internal | Passing Juice |
| Search syntax tips | External | Passing Juice |
| Sign up | Internal | Passing Juice |
| jwtk | Internal | Passing Juice |
| jjwt | Internal | Passing Juice |
| .github | Internal | Passing Juice |
| api | Internal | Passing Juice |
| bom | Internal | Passing Juice |
| extensions | Internal | Passing Juice |
| impl | Internal | Passing Juice |
| tdjar | Internal | Passing Juice |
| .gitignore | Internal | Passing Juice |
| CHANGELOG.md | Internal | Passing Juice |
| LICENSE | Internal | Passing Juice |
| NOTICE.md | Internal | Passing Juice |
| README.adoc | Internal | Passing Juice |
| SECURITY.md | Internal | Passing Juice |
| mvnw | Internal | Passing Juice |
| mvnw.cmd | Internal | Passing Juice |
| pom.xml | Internal | Passing Juice |
| JOSE Working Group | External | noFollow |
| RFC 7519: JSON Web Token (JWT) | External | noFollow |
| RFC 7515: JSON Web Signature (JWS) | External | noFollow |
| RFC 7516: JSON Web Encryption (JWE) | External | noFollow |
| RFC 7517: JSON Web Key (JWK) | External | noFollow |
| RFC 7518: JSON Web Algorithms (JWA) | External | noFollow |
| RFC 7638: JSON Web Key Thumbprint | External | noFollow |
| RFC 9278: JSON Web Key Thumbprint URI | External | noFollow |
| RFC 7797: JWS Unencoded Payload Option | External | noFollow |
| RFC 8037: Edwards Curve algorithms and JWKs | External | noFollow |
| Les Hazlewood | External | Passing Juice |
| community | External | Passing Juice |
| Apache 2.0 License | External | noFollow |
| Features | Internal | Passing Juice |
| Currently Unsupported Features | Internal | Passing Juice |
| Community | Internal | Passing Juice |
| Getting Help | Internal | Passing Juice |
| Questions | Internal | Passing Juice |
| Bugs, Feature Requests, Ideas and General Discussions | Internal | Passing Juice |
| Contributing | Internal | Passing Juice |
| Pull Requests | Internal | Passing Juice |
| Help Wanted | Internal | Passing Juice |
| What is a JSON Web Token? | Internal | Passing Juice |
| JWT Example | Internal | Passing Juice |
| JWS Example | Internal | Passing Juice |
| JWE Example | Internal | Passing Juice |
| Installation | Internal | Passing Juice |
| JDK Projects | Internal | Passing Juice |
| Maven | Internal | Passing Juice |
| Gradle | Internal | Passing Juice |
| Android Projects | Internal | Passing Juice |
| Dependencies | Internal | Passing Juice |
| Proguard | Internal | Passing Juice |
| Bouncy Castle | Internal | Passing Juice |
| Understanding JJWT Dependencies | Internal | Passing Juice |
| Quickstart | Internal | Passing Juice |
| Creating a JWT | Internal | Passing Juice |
| JWT Header | Internal | Passing Juice |
| JwtBuilder Header | Internal | Passing Juice |
| Custom Header Parameters | Internal | Passing Juice |
| Header Parameter Map | Internal | Passing Juice |
| Jwts HeaderBuilder | Internal | Passing Juice |
| JWT Payload | Internal | Passing Juice |
| Arbitrary Content | Internal | Passing Juice |
| JWT Claims | Internal | Passing Juice |
| Standard Claims | Internal | Passing Juice |
| Custom Claims | Internal | Passing Juice |
| Claims Map | Internal | Passing Juice |
| JWT Compression | Internal | Passing Juice |
| Reading a JWT | Internal | Passing Juice |
| Constant Parsing Key | Internal | Passing Juice |
| Multiple Keys? | Internal | Passing Juice |
| Dynamic Key Lookup | Internal | Passing Juice |
| Key Locator | Internal | Passing Juice |
| Key Locator Strategy | Internal | Passing Juice |
| Key Locator Return Values | Internal | Passing Juice |
| Provider-constrained Keys | Internal | Passing Juice |
| Claim Assertions | Internal | Passing Juice |
| Accounting for Clock Skew | Internal | Passing Juice |
| Custom Clock Support | Internal | Passing Juice |
| JWT Decompression | Internal | Passing Juice |
| Signed JWTs | Internal | Passing Juice |
| Standard Signature Algorithms | Internal | Passing Juice |
| Signature Algorithms Keys | Internal | Passing Juice |
| HMAC-SHA | Internal | Passing Juice |
| RSA | Internal | Passing Juice |
| Elliptic Curve | Internal | Passing Juice |
| Edwards Curve | Internal | Passing Juice |
| Creating Safe Keys | Internal | Passing Juice |
| Secret Keys | Internal | Passing Juice |
| Asymmetric Keys | Internal | Passing Juice |
| Creating a JWS | Internal | Passing Juice |
| Signing Key | Internal | Passing Juice |
| SecretKey Formats | Internal | Passing Juice |
| SignatureAlgorithm Override | Internal | Passing Juice |
| JWS Compression | Internal | Passing Juice |
| Reading a JWS | Internal | Passing Juice |
| Verification Key | Internal | Passing Juice |
| Verification Key Locator | Internal | Passing Juice |
| JWS Decompression | Internal | Passing Juice |
| Unencoded Payload Option | Internal | Passing Juice |
| Benefits | Internal | Passing Juice |
| Disadvantages | Internal | Passing Juice |
| Detached Payload Example | Internal | Passing Juice |
| Non-Detached Payload Example | Internal | Passing Juice |
| Encrypted JWTs | Internal | Passing Juice |
| JWE Encryption Algorithms | Internal | Passing Juice |
| Symmetric Ciphers | Internal | Passing Juice |
| JWE Key Management Algorithms | Internal | Passing Juice |
| JWE Standard Key Management Algorithms | Internal | Passing Juice |
| RSA Key Encryption | Internal | Passing Juice |
| AES Key Encryption | Internal | Passing Juice |
| Direct Key Encryption | Internal | Passing Juice |
| Password-Based Key Encryption | Internal | Passing Juice |
| Elliptic Curve Diffie-Hellman Ephemeral Static Key Agreement (ECDH-ES) | Internal | Passing Juice |
| Creating a JWE | Internal | Passing Juice |
| JWE Compression | Internal | Passing Juice |
| Reading a JWE | Internal | Passing Juice |
| Decryption Key | Internal | Passing Juice |
| Decryption Key Locator | Internal | Passing Juice |
| ECDH-ES Decryption with PKCS11 PrivateKeys | Internal | Passing Juice |
| JWE Decompression | Internal | Passing Juice |
| JSON Web Keys (JWKs) | Internal | Passing Juice |
| Create a JWK | Internal | Passing Juice |
| JWK from a Map | Internal | Passing Juice |
| Read a JWK | Internal | Passing Juice |
| PrivateKey JWKs | Internal | Passing Juice |
| Private JWK from KeyPair | Internal | Passing Juice |
| Private JWK Public Conversion | Internal | Passing Juice |
| JWK Thumbprints | Internal | Passing Juice |
| JWK Thumbprint as a Key ID | Internal | Passing Juice |
| JWK Thumbprint URI | Internal | Passing Juice |
| JWK Security Considerations | Internal | Passing Juice |
| JWK Sets | Internal | Passing Juice |
| Create a JWK Set | Internal | Passing Juice |
| Read a JWK Set | Internal | Passing Juice |
| Compression | Internal | Passing Juice |
| Custom Compression Algorithm | Internal | Passing Juice |
| JSON Support | Internal | Passing Juice |
| Custom JSON Processor | Internal | Passing Juice |
| Jackson JSON Processor | Internal | Passing Juice |
| Parsing of Custom Claim Types | Internal | Passing Juice |
| Gson JSON Processor | Internal | Passing Juice |
| Base64 Support | Internal | Passing Juice |
| Understanding Base64 in Security Contexts | Internal | Passing Juice |
| Base64 is not encryption | Internal | Passing Juice |
| Changing Base64 Characters | Internal | Passing Juice |
| Adding Invalid Characters | Internal | Passing Juice |
| Custom Base64 | Internal | Passing Juice |
| Examples | Internal | Passing Juice |
| JWT Signed with HMAC | Internal | Passing Juice |
| JWT Signed with RSA | Internal | Passing Juice |
| JWT Signed with ECDSA | Internal | Passing Juice |
| JWT Signed with EdDSA | Internal | Passing Juice |
| JWT Encrypted Directly with a SecretKey | Internal | Passing Juice |
| JWT Encrypted with RSA | Internal | Passing Juice |
| JWT Encrypted with AES Key Wrap | Internal | Passing Juice |
| JWT Encrypted with ECDH-ES | Internal | Passing Juice |
| JWT Encrypted with a Password | Internal | Passing Juice |
| SecretKey JWK | Internal | Passing Juice |
| RSA Public JWK | Internal | Passing Juice |
| RSA Private JWK | Internal | Passing Juice |
| Elliptic Curve Public JWK | Internal | Passing Juice |
| Elliptic Curve Private JWK | Internal | Passing Juice |
| Edwards Elliptic Curve Public JWK | Internal | Passing Juice |
| Edwards Elliptic Curve Private JWK | Internal | Passing Juice |
| Learn More | Internal | Passing Juice |
| Author | Internal | Passing Juice |
| License | Internal | Passing Juice |
| fluent | External | noFollow |
| AES_128_CBC_HMAC_SHA_256 | External | noFollow |
| AES_192_CBC_HMAC_SHA_384 | External | noFollow |
| AES_256_CBC_HMAC_SHA_512 | External | noFollow |
| Non-compact | External | noFollow |
| ask your question here | External | Passing Juice |
| discuss it here | External | Passing Juice |
| Help Wanted Issues | External | Passing Juice |
| contributing pull requests | Internal | Passing Juice |
| Registered Claims | External | noFollow |
| Authenticated Encryption with Associated Data | External | noFollow |
| JDK project | Internal | Passing Juice |
| Android project | Internal | Passing Juice |
| Android Proguard | External | noFollow |
| dependencies | Internal | Passing Juice |
| content | Internal | Passing Juice |
| digitally signing | Internal | Passing Juice |
| encrypting | Internal | Passing Juice |
| recommended compact format | External | noFollow |
| standard claim name | Internal | Passing Juice |
| Configure the Provider in the JVM | External | noFollow |
| Security.addProvider(Provider) | External | noFollow |
| RFC 7518, Sections 3.2 through 3.5 | External | noFollow |
| RFC 7512 Section 3.2 | External | noFollow |
| 3.3 | External | noFollow |
| 3.5 | External | noFollow |
| RFC 7512 Section 3.4 | External | noFollow |
| Base64-encoding is not encryption | Internal | Passing Juice |
| encoded byte array | External | noFollow |
| TLS does not guarantee end-to-end security | External | noFollow |
| MUST | External | noFollow |
| security considerations | External | noFollow |
| Authenticated Encryption | External | noFollow |
| encryption algorithm | Internal | Passing Juice |
| 4.2 | External | noFollow |
| 4.3 | External | noFollow |
| OWASP PBKDF2 recommended | External | noFollow |
| epk header | External | noFollow |
| NIST.800-56A | External | noFollow |
| PartyUInfo | External | noFollow |
| PartyVInfo | External | noFollow |
| header | Internal | Passing Juice |
| claims | Internal | Passing Juice |
| ECKey | External | noFollow |
| EdECKey | External | noFollow |
| SunPKCS11 Provider | External | noFollow |
| Provider-constrained Keys | Internal | Passing Juice |
| DEFLATE | External | noFollow |
| GZIP | External | noFollow |
| JSON Web Keys | External | noFollow |
| DER, PEM and PKCS12 | External | noFollow |
| JSON deserializer | Internal | Passing Juice |
| RFC 7518, Section 6.1.1 | External | noFollow |
| RFC 7518, Section 6.3.2 | External | noFollow |
| IANA Named Information Hash Algorithm Registry | External | noFollow |
| RFC 7515, Appendix A.1.1 | External | noFollow |
| JWK Set | External | noFollow |
| JWK | Internal | Passing Juice |
| described above | Internal | Passing Juice |
| Base64 | External | noFollow |
| Base64 | External | noFollow |
| Base64URL | External | noFollow |
| Changing Base64 characters | Internal | Passing Juice |
| answers | External | noFollow |
| JJWT issue comments | External | Passing Juice |
| good answer | External | noFollow |
| Robustness Principle | External | noFollow |
| JJWT Issue #518 | External | Passing Juice |
| JWS Signed with HMAC | Internal | Passing Juice |
| JWS Signed with RSA | Internal | Passing Juice |
| JWS Signed with ECDSA | Internal | Passing Juice |
| JWS Signed with EdDSA | Internal | Passing Juice |
| JWE Encrypted Directly with a SecretKey | Internal | Passing Juice |
| JWE Encrypted with RSA | Internal | Passing Juice |
| JWE Encrypted with AES Key Wrap | Internal | Passing Juice |
| JWE Encrypted with ECDH-ES | Internal | Passing Juice |
| JWE Encrypted with a Password | Internal | Passing Juice |
| SecretKey JWK | Internal | Passing Juice |
| RSA Public JWK | Internal | Passing Juice |
| RSA Private JWK | Internal | Passing Juice |
| Elliptic Curve Public JWK | Internal | Passing Juice |
| Elliptic Curve Private JWK | Internal | Passing Juice |
| Edwards Elliptic Curve Public JWK | Internal | Passing Juice |
| Edwards Elliptic Curve Private JWK | Internal | Passing Juice |
| HMAC | External | noFollow |
| 6 standard RSA signing algorithms | Internal | Passing Juice |
| RSA keys 2048-bits or larger | Internal | Passing Juice |
| Edwards Curve Digital Signature Algorithm | External | noFollow |
| RFC 8037, Section 3.1 | External | noFollow |
| directly using a symmetric secret key | Internal | Passing Juice |
| RSA Key Encryption | Internal | Passing Juice |
| AES Key Encryption | Internal | Passing Juice |
| Elliptic Curve Diffie-Hellman Ephemeral Static Key Agreement | Internal | Passing Juice |
| Password-based Key Encryption | Internal | Passing Juice |
| JSON Web Token for Java and Android | External | noFollow |
| How to Create and Verify JWTs in Java | External | noFollow |
| Where to Store Your JWTs - Cookies vs HTML5 Web Storage | External | noFollow |
| Use JWT the Right Way! | External | noFollow |
| Token Authentication for Java Applications | External | noFollow |
| JJWT Changelog | Internal | Passing Juice |
| java | Internal | Passing Juice |
| json | Internal | Passing Juice |
| jwt | Internal | Passing Juice |
| jackson | Internal | Passing Juice |
| jwt-claims | Internal | Passing Juice |
| jwt-tokens | Internal | Passing Juice |
| jwt-token | Internal | Passing Juice |
| jwk | Internal | Passing Juice |
| jwe | Internal | Passing Juice |
| jws | Internal | Passing Juice |
| jwt-bearer-tokens | Internal | Passing Juice |
| jwt-authentication | Internal | Passing Juice |
| jwt-server | Internal | Passing Juice |
| jwt-auth | Internal | Passing Juice |
| hacktoberfest | Internal | Passing Juice |
| jwkset | Internal | Passing Juice |
| java-jwt | Internal | Passing Juice |
| jjwt | Internal | Passing Juice |
| jwk-thumbprint | Internal | Passing Juice |
| jwk-thumbprint-uri | Internal | Passing Juice |
| Report repository | Internal | Passing Juice |
| + 8 releases | Internal | Passing Juice |
| + 51 contributors | Internal | Passing Juice |
| Terms | External | Passing Juice |
| Privacy | External | Passing Juice |
| Security | External | Passing Juice |
| Status | External | Passing Juice |
| Community | External | Passing Juice |
| Docs | External | Passing Juice |
| Contact | External | Passing Juice |
Keywords Cloud
Keywords Consistency
| Keyword | Content | Title | Keywords | Description | Headings |
|---|
Url
Domain : jsonwebtoken.io
Length : 15
Favicon
Great, your website has a favicon.
Printability
We could not find a Print-Friendly CSS.
Language
Good. Your declared language is en.
Dublin Core
This page does not take advantage of Dublin Core.
Doctype
HTML 5
Encoding
Perfect. Your declared charset is UTF-8.
W3C Validity
Errors : 0
Warnings : 0
Email Privacy
Great no email address has been found in plain text!
Deprecated HTML
Great! We haven't found deprecated HTML tags in your HTML.
Speed Tips
![]() |
Attention! Try to avoid nested tables in HTML. |
![]() |
Too bad, your website is using inline styles. |
![]() |
Too bad, your website has too many CSS files (more than 4). |
![]() |
Too bad, your website has too many JS files (more than 6). |
![]() |
Perfect, your website takes advantage of gzip. |
Mobile Optimization
![]() |
Apple Icon |
![]() |
Meta Viewport Tag |
![]() |
Flash content |
XML Sitemap
Missing
Your website does not have an XML sitemap - this can be problematic.
A sitemap lists URLs that are available for crawling and can include additional information like your site's latest updates, frequency of changes and importance of the URLs. This allows search engines to crawl the site more intelligently.
Robots.txt
https://jsonwebtoken.io/robots.txt
Great, your website has a robots.txt file.
Analytics
Missing
We didn't detect an analytics tool installed on this website.
Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.
Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.