Note: JShaman is available in both Chinese and English versions, but the evaluation in this article focuses on the English version.
Both are web-based platforms that can be accessed and used directly in the browser.
JScrambler is more complex to use and requires registering for an account and logging into the backend before use. JShaman, however, is much more convenient as it requires no registration and can be used directly.
JScrambler and JShaman both offer over 20 obfuscation features that can be used, such as: numeric encryption, flattening control flow, JSON encryption, variable name obfuscation, regular expression encryption, string encryption, etc. This means that the protection strength of the two products should be similar because the number of obfuscation options is similar.
In terms of explaining each feature, JShaman uses example code to demonstrate, while JScrambler provides textual descriptions. For users who are not familiar with obfuscation techniques, JShaman's example code approach is more intuitive and allows users to understand the protective effect of each feature after enabling it in their code. However, JScrambler's textual descriptions are more abstract.
Some options in JScrambler allow advanced configurations, such as variable name obfuscation, where specific variable name patterns can be set. However, JShaman does not provide such fine-tuned options.
The reporting function is used to display the operations performed during obfuscation, allowing the operator to clearly understand which aspects of the code have been enhanced and protected by the obfuscation operations.
JShaman's reporting is concise and straightforward, displayed immediately after obfuscation is completed. JScrambler's reporting can be viewed from historical operation records and displays more detailed information.
JScrambler displays how much the code has increased during each operation, while JShaman displays how many nodes were in the code before obfuscation and how many nodes there are after obfuscation. The methods are different, but the meaning is the same.
The intuitive differences mainly lie in three aspects: UI, operation, and reporting.
JScrambler is more delicate and complex, with a stronger commercial flavor.
JShaman has a beautiful interface, simple operation, and is easy to use.