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.
https://github.com/inzapp/inzcrypt/releases
-
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.
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
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 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 inzcrypt configuration from file.
Inzcrypt inzcrypt = Inzcrypt.load("key.txt");
inzcrypt.decrypt(new File("test.izc"));