A light, handy, customizable, open-source cryptography tool
Sicrypt is the ideal solution for encrypting and decrypting your text with any cipher you want, and you can even create your own cipher algorithm on Python very easily. By the way, the program can work offline, so you can replace your favorite web cryptography services with Sicrypt. The solution will be very useful for people who work with cryptography every day, for programmers that work with cryptography in their projects, for people who want to experiment with cryptography to implement or in their life, etc.
The most important feature of Sicrypt is that you can implement your own cipher algorithm very easily, using Python programming language, even without having Python interpreter installed! See Ciphers section for more information about this.
If you have faced a critical error during usage of the program, please open an issue card with the details of the error, which you can copy from the error messagebox. If you would like to contribute to Sicrypt development, please start pull requests with your changes.
- Download the latest release.
- Follow the installation guidance below:
- For versions 1.1 and 1.2, please specify the installation folder and click Start.
- To encrypt some text, please place the text inside the Source text field.
- Afterwards, please select a cipher in the Cipher combo box.
- After selecting the cipher, click the Encrypt button, and then the encrypted text will be shown in the Result text field. By default,
UTF-8
encoding is used, but you can use the Encrypt button popup menu actions to encrypt the text with another encoding, you can also use Other... menu action to specify your own encoding.
- To decrypt some text, please place the text inside the Source text field.
- Afterwards, please select a cipher in the Cipher combo box.
- After selecting the cipher, click the Decrypt button, and then the encrypted text will be shown in the Result text field. By default,
UTF-8
encoding is used, but you can use the Decrypt button popup menu actions to decrypt the text with another encoding, you can also use Other... menu action to specify your own encoding.
You can open a text file to make its text appear inside of the Source text field.
By default, UTF-8
encoding is used, but you can use the Open file... button popup menu actions to open a file with another encoding, you can also use Other... menu action to specify your own encoding.
- Select the text field you want to see the contents of the file in the Open file... button popup menu.
- Click on the Open file... button or click on one of the encoding-related actions inside of its popup menu.
- Select an existing file you want to open.
- After selecting the file, if opening succeeded, you can see the contents of the file in the specified field.
You can create or overwrite a file to save the contents of the Result text field into it.
By default, UTF-8
encoding is used, but you can use the Save to file... button popup menu actions to save to a file with another encoding, you can also use Other... menu action to specify your own encoding.
- Select the text field, which contents you want to see in the saved file in the Save to file... button popup menu..
- Click on the Save to file... button or click on one of the actions inside of its popup menu.
- Select any file you want to save to; if the specified file exists, you'll be asked if you wish to overwrite it.
- After selecting the file, if saving succeeded, you can see the contents of your specified field in your specified file.
- You can paste the contents of your clipboard (please ensure the contents can be interpreted as text) to the Source text field. To do so, please click on the Paste button in the bottom right corner, which is shown as a standard pasting symbol (like 📋).
- You can copy the contents of the Result text field into your clipboard. To do so, please click on the Copy button in the bottom right corner, which is shown as a standard copying symbol (like 📄).
You can transfer the contents of Source text and Result text fields between them. To do so, please use buttons in the bottom right corner, which are shown as arrows facing the transfer direction. While using Vertical (default) or Horizontal layouts of the text fields, the direction of the arrows will change correspondingly.
The configuration options and the possible values are listed in the table below.
F
prefix in the option name means that the option is configured separately for each text field.
Option name | Possible values | Remarks |
---|---|---|
Language | English | No localization support implemented yet |
Option name | Possible values | Remarks |
---|---|---|
Update installed ciphers if there are any updates | Yes/No | Should the installed ciphers, if these are hosted on our GitHub, be redownloaded if there is a newer version on GitHub? |
Download new ciphers if there are any | Yes/No | Should ciphers present on our GitHub, but unpresent in the local ciphers folder, be downloaded? |
Option name | Possible values | Remarks |
---|---|---|
Position | Vertical/Horizontal | How should the border between the text fields be positioned? |
F Font |
InstalledFont & int<8, 99> |
Which font family & font size must be used in the specified text field? |
F Tab policy |
Tab symbol/2 spaces/3 spaces/4 spaces | Which character(s) must be inserted while Tab key is pressed in the specified text field? |
F Line wrap |
Yes/No | Must the lines be wrapped in the specified text field? |
Ciphers are represented as .py
files stored in the ciphers
directory at the program's location. Inside of such a file there is a defined class, inherited from Cipher
class.
Ciphers can be monodirectional (encryption-only, like hashing alghorythms) and bidirectional (encryption and decryption). They have categories, like Binary-to-text-encoding, (more information about categorization see in the class documentation) and a display name, which is shown in the cipher selection combo box.
Sicrypt automatically tries to download all ciphers hosted on this GitHub repository on first launch. As stated in Settings section, you can switch on and off the ciphers' downloading from GitHub. But with ciphers' downloading turned on, you don't need to manually download ciphers for Sicrypt, it'll do it itself. In case of no Internet connection available, you might need to define the ciphers yourself (see the next section for more info).
To create a cipher, you need to create a {fileName}.py
file in the ciphers
directory. You can use the template and guidance below to define your ciphers, by the way you can define as many ciphers in one file as you want, and as many cipher definition files as you want. See also Cipher
class documentation.
#Always import 'Cipher' class!
from sicrypt import Cipher
#Import libraries if necessary for your cipher definition
from base64 import *
from binascii import Error as BaseCipherDecodingError
#Define a class inheriting 'Cipher' class
class MyCipher(Cipher):
'''
Write a brief description of your cipher.
'''
def __init__(self):
#Initialize a Cipher instance (more parameters related info can be found
#in the Cipher class documentation)
#Cipher.__init__(self, type: bool (False -> Monodirectional/True -> Bidirectional),
#displayName: str, __name__, category: str)
Cipher.__init__(self, True, 'MyTestCipher', __name__, 'btte')
#Every class inherited from `Cipher` class must have an `encrypt` method,
#and, in case of bidirectional cipher, a `decrypt` method. Each method
#must accept two string arguments (text to encrypt/decrypt, encoding) and
#return a string.
def encrypt(self, text: str, encoding: str) -> str:
#Do some cryptography-related routine here
s = f'MyText: {text}'
return s
#The method below must be defined in case of a bidirectional cipher
def decrypt(self, text: str, encoding: str) -> str:
#Do some cryptography-related routine here
s = f'MyText: {text}'
return s
Лёгкая, настраиваемая, удобная программа для криптографии
- Что такое Sicrypt?
- Создан с использованием...
- Журнал изменений по версиям
- Установка
- Описание функций
- Шифры
Sicrypt is the ideal solution for encrypting and decrypting your text with any cipher you want, and you can even create your own cipher algorithm on Python very easily. By the way, the program can work offline, so you can replace your favorite web cryptography services with Sicrypt. The solution will be very useful for people who work with cryptography every day, for programmers that work with cryptography in their projects, for people who want to experiment with cryptography to implement or in their life, etc.
The most important feature of Sicrypt is that you can implement your own cipher algorithm very easily, using Python programming language, even without having Python interpreter installed! See Ciphers section for more information about this.
If you have faced a critical error during usage of the program, please open an issue card with the details of the error, which you can copy from the error messagebox. If you would like to contribute to Sicrypt development, please start pull requests with your changes.
- Download the latest release.
- Follow the installation guidance below:
- For versions 1.1 and 1.2, please specify the installation folder and click Start.
- To encrypt some text, please place the text inside the Source text field.
- Afterwards, please select a cipher in the Cipher combo box.
- After selecting the cipher, click the Encrypt button, and then the encrypted text will be shown in the Result text field. By default,
UTF-8
encoding is used, but you can use the Encrypt button popup menu actions to encrypt the text with another encoding, you can also use Other... menu action to specify your own encoding.
- To decrypt some text, please place the text inside the Source text field.
- Afterwards, please select a cipher in the Cipher combo box.
- After selecting the cipher, click the Decrypt button, and then the encrypted text will be shown in the Result text field. By default,
UTF-8
encoding is used, but you can use the Decrypt button popup menu actions to decrypt the text with another encoding, you can also use Other... menu action to specify your own encoding.
You can open a text file to make its text appear inside of the Source text field.
By default, UTF-8
encoding is used, but you can use the Open file... button popup menu actions to open a file with another encoding, you can also use Other... menu action to specify your own encoding.
- Select the text field you want to see the contents of the file in the Open file... button popup menu.
- Click on the Open file... button or click on one of the encoding-related actions inside of its popup menu.
- Select an existing file you want to open.
- After selecting the file, if opening succeeded, you can see the contents of the file in the specified field.
You can create or overwrite a file to save the contents of the Result text field into it.
By default, UTF-8
encoding is used, but you can use the Save to file... button popup menu actions to save to a file with another encoding, you can also use Other... menu action to specify your own encoding.
- Select the text field, which contents you want to see in the saved file in the Save to file... button popup menu..
- Click on the Save to file... button or click on one of the actions inside of its popup menu.
- Select any file you want to save to; if the specified file exists, you'll be asked if you wish to overwrite it.
- After selecting the file, if saving succeeded, you can see the contents of your specified field in your specified file.
- You can paste the contents of your clipboard (please ensure the contents can be interpreted as text) to the Source text field. To do so, please click on the Paste button in the bottom right corner, which is shown as a standard pasting symbol (like 📋).
- You can copy the contents of the Result text field into your clipboard. To do so, please click on the Copy button in the bottom right corner, which is shown as a standard copying symbol (like 📄).
You can transfer the contents of Source text and Result text fields between them. To do so, please use buttons in the bottom right corner, which are shown as arrows facing the transfer direction. While using Vertical (default) or Horizontal layouts of the text fields, the direction of the arrows will change correspondingly.
The configuration options and the possible values are listed in the table below.
F
prefix in the option name means that the option is configured separately for each text field.
Option name | Possible values | Remarks |
---|---|---|
Language | English | No localization support implemented yet |
Option name | Possible values | Remarks |
---|---|---|
Update installed ciphers if there are any updates | Yes/No | Should the installed ciphers, if these are hosted on our GitHub, be redownloaded if there is a newer version on GitHub? |
Download new ciphers if there are any | Yes/No | Should ciphers present on our GitHub, but unpresent in the local ciphers folder, be downloaded? |
Option name | Possible values | Remarks |
---|---|---|
Position | Vertical/Horizontal | How should the border between the text fields be positioned? |
F Font |
InstalledFont & int<8, 99> |
Which font family & font size must be used in the specified text field? |
F Tab policy |
Tab symbol/2 spaces/3 spaces/4 spaces | Which character(s) must be inserted while Tab key is pressed in the specified text field? |
F Line wrap |
Yes/No | Must the lines be wrapped in the specified text field? |
Ciphers are represented as .py
files stored in the ciphers
directory at the program's location. Inside of such a file there is a defined class, inherited from Cipher
class.
Ciphers can be monodirectional (encryption-only, like hashing alghorythms) and bidirectional (encryption and decryption). They have categories, like Binary-to-text-encoding, (more information about categorization see in the class documentation) and a display name, which is shown in the cipher selection combo box.
Sicrypt automatically tries to download all ciphers hosted on this GitHub repository on first launch. As stated in Settings section, you can switch on and off the ciphers' downloading from GitHub. But with ciphers' downloading turned on, you don't need to manually download ciphers for Sicrypt, it'll do it itself. In case of no Internet connection available, you might need to define the ciphers yourself (see the next section for more info).
To create a cipher, you need to create a {fileName}.py
file in the ciphers
directory. You can use the template and guidance below to define your ciphers, by the way you can define as many ciphers in one file as you want, and as many cipher definition files as you want. See also Cipher
class documentation.
#Always import 'Cipher' class!
from sicrypt import Cipher
#Import libraries if necessary for your cipher definition
from base64 import *
from binascii import Error as BaseCipherDecodingError
#Define a class inheriting 'Cipher' class
class MyCipher(Cipher):
'''
Write a brief description of your cipher.
'''
def __init__(self):
#Initialize a Cipher instance (more parameters related info can be found
#in the Cipher class documentation)
#Cipher.__init__(self, type: bool (False -> Monodirectional/True -> Bidirectional),
#displayName: str, __name__, category: str)
Cipher.__init__(self, True, 'MyTestCipher', __name__, 'btte')
#Every class inherited from `Cipher` class must have an `encrypt` method,
#and, in case of bidirectional cipher, a `decrypt` method. Each method
#must accept two string arguments (text to encrypt/decrypt, encoding) and
#return a string.
def encrypt(self, text: str, encoding: str) -> str:
#Do some cryptography-related routine here
s = f'MyText: {text}'
return s
#The method below must be defined in case of a bidirectional cipher
def decrypt(self, text: str, encoding: str) -> str:
#Do some cryptography-related routine here
s = f'MyText: {text}'
return s