You can click to upload a ZIP file or drag and drop it here to encrypt your code.
First-time users should review each setting to avoid issues with encrypted code.

JavaScript Multiple File Encryption

Hover over the blue icon for help on each setting.
If you encounter any issues, click 'Submit Issue' on the right side of the screen. Providing corresponding reproducible code will help us better investigate and resolve the issue 😊
Set runtime environment
  • VIP
    Features in the encryption configuration description marked with
    are membership privileges. Click VIP to purchase membership
  • CustVer
    Requires membership. Set a custom version number here. If empty, the version number display will be removed.
  • RemHdr
    Requires membership to unlock.
  • Domain Lock Format should be or Supports wildcard subdomains, e.g., *
  • Non-locked
    Configure actions for running code outside locked domains.
  • ResNames When obfuscating variable and function names, add those you don't want obfuscated here.
  • Time Lock
    Note: Default lock time is one year. Modify as needed.
  • EncSet
    Note: Not all historical versions are selectable. Versions with bugs are excluded. Typically, only two options are available: Stable and Latest.
Solemn Declaration

👉safekodo will not save any of your code. Ownership of encrypted and unencrypted code remains with you.

👉safekodo will not insert any malicious code into encrypted code.

👉safekodo will never accept any decryption requests under any circumstances. All users, whether free or sponsored, are treated equally. Paying users will not receive special treatment.

👉safekodo is a free tool. If it helps you, please click on the upper right corner of the encryption editor.😄 Support Us

👉Even paid users only get more customization options. Encryption strength is not significantly different from the free version.

👉safekodo provides professional JavaScript code protection. It aims to offer professional protection for more websites. Early protection means more security!

Multi-file Encryption Mode Precautions

When using multi-file encryption, compress the JS code into a zip file. All .js files should be in the same directory (i.e., unzip to get multiple JS files directly, not a folder containing files).

Multi-file encryption will not recursively get JS files from folders within the zip. It only encrypts JS files in the default path.

Encryption Parameter Recommendations

Highly recommended parameters to keep during encryption: Obfuscate code injection, Remove console functions, Disable F12 key, Flatten control flow, Disable console debugging, Prevent code formatting. If the encrypted code does not reference other JS files, select 'Obfuscate variable and function names'. If there are references, add the variable and function names in 'Reserved Words'. For website applications, enable domain lock. For strong encryption, choose 'Strongest Encryption'. For performance, choose 'Best Performance'. For a balance, choose 'Balanced Encryption'. To limit code execution to a specific time, use 'Time Lock'.

Do not re-encrypt already encrypted code. It reduces encryption security. Encrypt once.

Prohibit Running in iframe

If you don't want your site displayed through an iframe by other sites or in environments like Electron, typically you add an HTTP response header, but this can be bypassed (e.g., intercept and modify the response header in Electron). Therefore, select this option. Note that current version disallows iframe loading regardless of same-origin.

Strict Mode

Select to run code in strict mode. If encrypted code runs in a mini-program, select this option. (If not selected, disable strict mode in the mini-program developer tool. Different mini-programs may have different terms. For mini-program environments, select strict mode.)

Errors After Encryption / Cannot Run

If the code runs without errors but has no effect, check if it is allowed on the specified (locked domain) domain. Also check if time lock is configured and if it is within the specified time.

If the code causes the browser to freeze, check if 'Disable Console Debugging' is configured and if the browser is blocking it. Also check if 'Flatten Control Flow' or 'Prevent Code Formatting' causes the issue. Test with a simpler configuration.

If the code encounters errors, verify if 'Obfuscate variable and function names' causes variable name conflicts. Add conflicting variables to 'Reserved Words'. Also check if the code uses external references that need special handling.

Refer to the 'API Encryption Settings' section for more configuration options.