Defend against hackers and keep your Java-based apps safe for your end users

Get a quote

Robust Java code protection, whatever the environment and OS.

Stringer Java Obfuscator works hard to keep your apps safe. It protects your Java code, transparently encrypts your resources, and ensures the integrity of your apps. It secures your sensitive method calls and logic. And it carries out dynamic key calculations at runtime for added protection.

Your standalone, desktop, and enterprise apps can be protected by Stringer Java Obfuscator. It currently protects millions of Java-based app users worldwide. It frees them from the fear of cyber attacks and allows them to get on with doing their best work.


  • Clever cryptography that hides your app’s logic
  • Protection against both static and dynamic analysis
  • Easy configuration and installation saves you time
  • Integrity checks prevent tampered-with apps from starting
  • If it’s Oracle-certified, then Stringer can protect it
  • Dynamic key calculations provide an extra layer of protection


Stringer Java Obfuscator's toolkit protects your apps from a wide range of malicious attacks.

  • Code Protection and Virtualization

    Stringer hides the method calls and logic within your app. And its string encryption feature scrambles your string code so that bad actors can’t decompile it.

  • Content Protection

    Unlike other protection products, Stringer's resource encryption is transparent. There’s no need for you to change your code or the way that you work with your resources.

  • Integrity Control

    Stringer uses dynamic key calculation. So, if a bad actor has tampered with anything within the app, it will generate an incorrect key and the app won’t start.

man in co-working office

How it works

Protective layers that secure your code and assets.


01_String Encryption

String encryption works a little bit like a one-way mirror. On one side, you can only see your reflection. But the other side is transparent. Stringer keeps bad actors on the first side of the mirror. They only see a protected, unreadable version of the string code reflected back at them.

We use context-sensitive encryption keys to decrypt protected strings. That makes it impossible for a hacker to carry out a static analysis on your apps.


02_Hide Access

The method calls and access to fields within your apps have meaningful logic that you can understand. But Hide Access virtualizes and conceals this logic so that hackers can’t make any sense of it.

This process also protects against hooking and debugging attempts. So it secures the sensitive logic in your apps and libraries.


03_Resource Encryption

Stringer encrypts the assets and resources within your apps. These include media files, text files and HTML files. At the end of this process, your apps contain exactly the same number of files. But hackers can’t tell what they are anymore. This is an automatic encryption process, with no coding required.

Stringer works with the final containers during this process. That’s important, because it means it can pre-calculate the dynamic keys before execution. This is a unique process that adds an extra layer of protection.


04_Integrity control

Stringer’s integrity control identifies binaries that have been damaged or deliberately modified. If it does, it won’t allow them to function. That means hackers can’t inject malicious code to get at your end user’s sensitive information such as passwords or credit card numbers. And they can’t disable a licensing subsystem.

With Stringer Enterprise, you can configure integrity control manually. So, you can enable or disable the JAR’s signature check, for example. And you can enable or disable the JAR’s contents check and tamper detection.

View documentation

Why Stringer's Java code protection is so effective.

Other Java obfuscators only tend to protect your bytecode in Java classes. They don’t work directly with the final enterprise app containers. Because Stringer does work with the final containers, it can protect assets transparently. It also helps to make your apps tamper proof.

Stringer is smart. It can automatically recognize the type of enterprise app it’s protecting. So, it can differentiate between a Spring and Spring Boot app, for example. And it can identify web app containers like WAR and EAR.

This intelligence and depth of security means that individual parts of your app - like the code and assets - are better protected from attacks.

Get a quote

Take Stringer’s protection to another level with Alice and CryptoModule. Attack telemetry and threat intelligence, and smart security designed for sensitive apps.

Request a demo


Get a real-time view of exactly how Stringer is keeping your app safe. Alice gives you valuable insights that you can use to plan your long term security.

Learn more

Crypto Module

Does your app carry critical logic and rely on cryptography? If so, CryptoModule can help. It uses a smart virtual machine to store key material in a safe environment.

Learn more


Product updates

  • Stringer 9.3

    Introducing the latest version of Stringer, where Java 13 support and the new WebContainer integration mechanisms have been introduced.

    read more
  • Stringer 9.0

    Stringer 9.0 fully supports Java 9 and includes new protection mechanisms which utilize features that modern JREs provide.

    read more

Ready to get started?

Our other products