.JKS

JKS File

Java KeyStore
Ask a question
QUICK ANSWER

A JKS file is a Java KeyStore - an encrypted, password-protected binary that stores private keys and SSL/TLS certificates for Java applications such as Tomcat and Android app signing. You open it with the JDK's built-in keytool command or the free GUI KeyStore Explorer. The format has been deprecated since Java 9 (2017) in favor of PKCS#12 (.p12/.pfx), and the keystore password is required to read anything inside.

Developer: Sun Microsystems / Oracle (Java platform) Category: Encoded Files MIME: application/octet-stream
OPENS ON Windows macOS Linux
Related: .CRYPT · .SDOC · .AXX · .REM

On this page

19k+ extensions indexed
Last reviewed Jul 30, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the JKS file format?

A .jks file is a Java KeyStore - a proprietary binary container that stores cryptographic private keys and X.509 certificates for use by Java applications. The format was introduced by Sun Microsystems as part of the Java Cryptography Architecture (JCA) in the late 1990s and is maintained today by Oracle.

Every .jks file starts with the 4-byte magic number 0xFEEDFEED, followed by a version field (typically 0x00000002). The file is big-endian and holds two entry types: KeyEntry records, containing an encrypted private key plus its certificate chain, and TrustedCertEntry records, which store certificates without encryption. A keyed SHA-1 digest at the end protects integrity - a wrong password or any tampering triggers the familiar *"keystore was tampered with, or password was incorrect"* error.

Private keys are protected by a proprietary password-based encryption (PBE) scheme built on SHA-1, which is considered weak by modern standards. The .jks format is Java-only and not readable by tools such as OpenSSL, which expect PKCS#12 or PEM instead.

Since JDK 9 (2017), Oracle deprecated .jks in favour of .p12 / .pfx, which became the new default keystore type. keytool now emits a migration warning on every JKS store it opens. The JDK's system trust store cacerts has historically shipped as a .jks file. The related .jceks variant (magic 0xCECECECE) offers stronger Triple-DES key protection but remains equally Java-specific.

Security & safety

RISK: MEDIUM

A JKS file is inert data (no executable code), but it is a SECRET store: it commonly contains private keys whose exposure compromises a server's identity or an app's signing key. Treat it like a password file - never commit it to a public repo, restrict file permissions, and use a strong store password. The format's encryption is weak by modern standards, so a leaked .jks with a poor password can be brute-forced; this is a further reason to migrate to PKCS#12 and to rotate keys if a keystore is ever exposed. Files claiming to be keystores from untrusted sources should not be trusted as your trust store.

Format details

in a nutshell
FULL NAMEJava KeyStoreaka JKS keystore, Java KeyStore file
DEVELOPERSun Microsystems / Oracle (Java platform)since 1990s, with the Java security architecture (Java Cryptography Architecture)
MIME TYPEapplication/octet-stream
TYPEProprietary binary keystore holding private keys and X.509 certificates, password-protected
This extension is also used by…
  • Star Wars Jedi Knight game save - Some LucasArts/Raven Star Wars Jedi Knight titles used .jks for saved games; loaded inside the game, unrelated to Java keystores (the obsolete db_name).
MAGIC BYTES · FILE SIGNATURE
OFFSET
00010203
HEX
FEEDFEED
ASCII
····
A JKS file begins with the 32-bit magic number 0xFEEDFEED (FE ED FE ED), followed by a 4-byte version field (usually 0x00000002). The related JCEKS variant uses magic 0xCECECECE. PKCS#12 keystores (.p12/.pfx) instead start with the ASN.1 SEQUENCE byte 0x30 (often 30 82), which is how tools tell a real JKS apart from a PKCS#12 file that happens to carry a .jks name.

Programs that open JKS files

Windows3 apps
keytool (JDK) Free Run 'keytool -list -v -keystore file.jks' (you'll be prompted for the store password) to view entries; -importcert / -genkeypair to modify.
KeyStore Explorer Open-source Open the .jks in this GUI, enter the password, and browse/edit keys and certificates without memorizing keytool syntax.
Star Wars Jedi Knight (game saves) Paid Only relevant if the .jks is actually a Jedi Knight game save (see also_used_by) - those load inside the game, not via keytool.
macOS2 apps
keytool (JDK) Free Same keytool commands; install a JDK (Temurin/Oracle) and run 'keytool -list -keystore file.jks'.
KeyStore Explorer Open-source Cross-platform Java GUI; open the .jks and enter its password to inspect/manage entries.
Linux2 apps
keytool (JDK) Open-source Install a JDK (e.g. Temurin/OpenJDK) and use keytool to list, import, export, or convert the keystore.
KeyStore Explorer Open-source Run the GUI to manage the .jks; also converts JKS <-> PKCS#12.

Technical details

deep spec
Magic bytes0xFEEDFEED (FE ED FE ED) at file offset 0; identifies the file as JKS to tools and validators
Format version field4-byte big-endian integer at offset 4; value 1 or 2 (version 2 is current)
Byte orderBig-endian throughout the entire binary structure
Private-key encryptionProprietary PBE scheme using SHA-1 as a key-derivation primitive; considered cryptographically weak by modern standards
Certificate storageTrustedCertEntry records hold X.509 DER-encoded certificates in plaintext - no per-certificate encryption
Integrity protectionKeyed SHA-1 digest over the entire store content, derived from the store password; detects both tampering and a wrong password
Entry typesTwo types: KeyEntry (encrypted private key + certificate chain) and TrustedCertEntry (bare certificate)
Entry addressingEach entry is identified by a unique string alias; aliases are case-insensitive within a store
MIME typeapplication/x-java-keystore (Java-specific); falls back to application/octet-stream for generic handling
Typical file size1 KB - 50 KB for a few keys and certificates; up to several MB for large trust stores such as cacerts
Primary management toolJDK keytool command-line utility; graphical alternative is KeyStore Explorer
Platform scopePortable across any OS with a JRE or JDK, but the format is Java-specific and not interoperable with OpenSSL or other non-Java PKI tools
Deprecation statusDeprecated by Oracle since JDK 9 (2017); PKCS#12 is now the default keystore type and keytool warns on every JKS store opened
Stronger Sun variantJCEKS (magic 0xCECECECE) - a Sun extension with Triple-DES key wrapping; still Java-only
System trust storeThe JDK cacerts file shipped with every JRE has historically been a JKS keystore holding hundreds of root CA certificates
Released1990s, with the Java security architecture (Java Cryptography Architecture)
Latest versionJKS format unchanged; deprecated in favor of PKCS#12 (default keystore type since JDK 9, 2017)
Specificationdocs.oracle.com

JKS conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with JKS files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about JKS files.

Frequently asked questions

What is a .jks file?
A Java KeyStore - an encrypted, password-protected file that stores private keys and SSL/TLS certificates for Java applications (servers, Android app signing). It's managed with the JDK's keytool, not opened as a document.
How do I open a JKS file?
Use the JDK 'keytool' on the command line ('keytool -list -v -keystore file.jks') or a free GUI like KeyStore Explorer. You must know the keystore password - there's no way to read the keys without it.
How do I convert a JKS to PKCS12 (.p12/.pfx)?
Run: keytool -importkeystore -srckeystore in.jks -srcstoretype JKS -destkeystore out.p12 -deststoretype PKCS12. PKCS#12 is the modern, cross-tool standard and the JDK default since Java 9.
Why does keytool say 'keystore was tampered with, or password was incorrect'?
Usually the store password is wrong - the integrity digest is derived from it, so a bad password looks like tampering. It can also mean the file is corrupted or isn't really a JKS.
Is JKS deprecated?
Yes. Since Java 9 (2017) keytool defaults to PKCS#12 and warns that JKS uses a proprietary, weaker format. Existing JKS files still work, but new keystores and migrations should use PKCS#12.
How do I recover the password for a .jks?
There's no official recovery - the store is integrity-bound to its password. You'd need the original password or a brute-force/dictionary tool on a copy, which only works if the password is weak. Otherwise the keys are unrecoverable.

References

1Oracle - keytool reference (Java KeyStore management)docs.oracle.com
2DigiCert - Convert a JKS keystore to PKCS#12knowledge.digicert.com

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.RPMSGRestricted Permission Message
5.PARTPartial Download File
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.SWFSmall Web Format (Shockwave Flash)
10.PRO6XProPresenter 6 Bundle File

Related extensions

.CRYPTWhatsApp Encrypted Message Database Backup
.SDOCOracle IRM Sealed Word Document
.AXXAxCrypt Encrypted File
.REMBlackBerry Encrypted Media Card File
.DLCDownload Link Container
.SECPGP Secret Key Ring File

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z