/inzcrypt

Powerful file encryption, decryption util using AES, DES, XOR, etc...

Primary LanguageJava

Inzcrypt

Inzcrypt is a util that encrypts files using its own algorithm using an encryption layer.

Files are encrypted by randomly generated keys,
and user-defined password is used for encrypt randomly generated keys.
Because it generates keys randomly every time you encrypt it,
the results are different even if you encrypt the same content.

A characteristic of Inzcrypt is that it creates its own encryption algorithm by combining various encryption algorithms.
If a user does not know the sequence of encryption layers, it is impossible to decryption even if a key is leaked.
Encrypted files using Inzcrypt can be decrypted using Inzcrypt only.

Download

https://github.com/inzapp/inzcrypt/releases

Supported encrypt method

  • Symmetric-key algorithm

    • AES (Advanced Encryption Standard) : 128, 256-bit block cipher
    • DES (Data Encryption Standart) : 64-bit block cipher

  • Substitution cipher

    • XOR : Each byte is encrypted by bitwise xor with a randomly generated long number.
    • CAESAR : Each byte is pushed back by the randomly generated byte value.
    • REVERSE : Flips all bytes in the file.
    • BYTE_MAP_1 : Each byte is mapped one-to-one by custom byte-map.
    • BYTE_MAP_2 : Each byte is mapped one-to-one by custom byte-map.
    • BYTE_MAP_3 : Each byte is mapped one-to-one by custom byte-map.

Usage

Example encryption test.txt file with AES

Inzcrypt inzcrypt = new Inzcrypt();
inzcrypt.addEncryptLayer(EncryptLayer.AES);
inzcrypt.setPassword("16_or_32_length_password");
inzcrypt.encrypt(new File("test.txt"));


Before encryption : test.txt

Inzcrypt test file


After encryption, the file's extension changes to izc.
After encrypt : test.izc

??1믑????湞쫼?Lca�$뼏?뵑
RbZWRpBcLoaLuU/CXqTttlR4R7PptCZE31pleGG7hMvMS3qPh8Er4KFv5gsNsP6J

Custom encryption

Create your own encryption algorithm.

Inzcrypt inzcrypt = new Inzcrypt();
inzcrypt.addEncryptLayer(EncryptLayer.AES);
inzcrypt.addEncryptLayer(EncryptLayer.DES);
inzcrypt.addEncryptLayer(EncryptLayer.CAESAR);
inzcrypt.addEncryptLayer(EncryptLayer.REVERSE);
inzcrypt.addEncryptLayer(EncryptLayer.XOR);
inzcrypt.addEncryptLayer(EncryptLayer.DES);
inzcrypt.addEncryptLayer(EncryptLayer.BYTE_MAP_2);
inzcrypt.addEncryptLayer(EncryptLayer.BYTE_MEP_3);
inzcrypt.setPassword("16_or_32_length_password");
inzcrypt.encrypt(new File("test.txt"));

Save configuration

Save inzcrypt configuration to file.

Inzcrypt inzcrypt = new Inzcrypt();
inzcrypt.addEncryptLayer(EncryptLayer.AES);
inzcrypt.addEncryptLayer(EncryptLayer.XOR);
inzcrypt.setPassword("16_or_32_length_password");

inzcrypt.save("key.txt");


Configuration is saved in JSON format.
key.txt

{
    "LAYERS": [ 
        "AES",
        "XOR"
    ],
    "PASSWORD": "16_or_32_length_password"
}

Load Configuration

Load inzcrypt configuration from file.

Inzcrypt inzcrypt = Inzcrypt.load("key.txt");
inzcrypt.decrypt(new File("test.izc"));