Cryptography code in python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Main repository for the production source code

Cryptography-in-Python/Cryptography-in-Python

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Project Cryptography in Python

In this project, we implemented cryptographic algorithm including AES, DES, MD5, RSA, VIG and SHA1. To be user friendly, we also implemented a GUI with pyqt5.

Our program requires pyqt5 to launch GUI. To install pyqt5, we can simply execute the command:

Another request to run our code is the Boost library which accelerates the computing of encrypting and decrypting with DES. Please refer to this link.

To launch the GUI, we can simply use the command:

python3 -m cryptography.GUI.gui

The AES cryptography includes OFB, CFB and CBC modes. We can switch between the working mode by choosing different modes in the combo box on the top right. Before doing the encryption and decryption, the users also need to specify the key to be used in the program. The key length shorter than 128bit will be padded with 0. The key length longer than 128bit will be ignored and only the first 128bit of the key will be taken into the algorithm.

Due to the limit of time, we are not able to expose the initial vector to be accessible for the user to change. So the initial vector of the AES are hard-coded.

To run the AES cryptography, press ‘Encrypt’ to create the cypher text from the plain text and press ‘Decrypt’ to create the plain text from cypher text.

The DES cryptography are implemented both in C and in python. The python version of DES is proof-of-feasible and the C version is for productive propose. The DES cryptography could support ECB, CBC and 3-DES modes. Users may also switch between the modes by choosing different modes in the combo box. Similar to the AES cryptography, the users also need to specify the keys used in the DES. The users may also need to give an initial vector when decrypting under the CBC mode.

Another feature the DES cryptography supports is the encryption and decryption of a file. Currently we support the encryption and decryption of text file (.txt), image file (.png, .jpg .bmp) or video file(.mp4, .avi). The files encrypted are named encrypted and its suffix are the same as the plain text file. The files decrypted are named decrypted and its suffix are also the same as its encrypted file. We also provided several sample files to encrypt and decrypt. Such files are located in the Sample/ folder. Encrypting and decrypting a file may be slow, so please be patience when doing so.

NOTE: to encrypt or decrypt a file, please keep the input box of cypher text and plain text empty.

MD5 provided a hash function. To run MD5, users can type into the plain text input box and push ‘Hash’ button

RSA is an asymmetric cryptographic algorithm. To run RSA, users can first specify the length of key and then type into the plain text input box. After that, they can push the ‘Encrypt’ button and see the result of encrypting. In the contrary, when filling the key length, Euler totient and the key, the users can decrypt the cypher text by pushing ‘Decrypt’ button.

Vigenere cypher is another cryptographic algorithm that we implemented. The way of running it is nearly the same as AES.

SHA1 is another hashing function. Its usage is nearly the same to MD5.

About

Main repository for the production source code

Источник

Шифрование и криптография в Python

В Python не так уж много инструментов стандартной библиотеки, которые работают с шифрованием. Однако, в нашем распоряжении есть библиотеки хешинга. Давайте рассмотрим этот вопрос в данной статье, но более детально сфокусируемся на двух сторонних пакетах: PyCrypto и cryptography. Мы научимся шифровать и расшифровывать строки при помощи двух этих библиотек.

Хеширование

Если вам нужно защитить хэши или алгоритм дайджеста сообщений, то для этого прекрасно подойдет модуль стандартной библиотеки Python hashlib. Он включает в себя безопасные алгоритмы хеширования FIPS, такие как SHA1, SHA224, SHA256, SHA384, а также SHA512 и MD5. Python также поддерживает функции хеширования adler32 и crc32, но они содержатся в модуле zlib. Одно из самых популярны применений хеширования это хранение хеша пароля, вместо самого пароля. Конечно, хеш должен быть хорошим, в противном случае он может быть расшифрован.

Другой популярный случай, в котором применяется хеширование – это хеширование файла, с последующей отправкой файла и его хеша по отдельности. Получатель файла может запустить хеш в файле, чтобы убедиться в том, что файл соответствует отправленному хешу. Если это так, значит никто не менял файл, когда он был отправлен. Давайте попробуем создать хеш md5. Но оказывается, чтобы использовать хеш md5, нужно передать его строке байта, вместо обычной. Так что мы попробовали сделать это, после чего вызвали метод дайджеста, чтобы получить наш хеш. Если вы претпочитаете хешированный дайджест, мы можем сделать и это:

Источник

Читайте также:  Java classloader class file
Оцените статью