norkator / Cryptography
Programming Languages
Labels
Projects that are alternatives of or similar to Cryptography
Cryptography
This repository will slowly get more and more cryptography code samples written in Java. Methods are related to Cryptography android application cipher method collection. Point of this repository is that users can find everything in one place, modify code, play with these methods in any way they want and this way learn how ciphers worked in the past and how they work these days. In short words this repository is meant to be educational.
This repository is part of this Android application: Google Play - Cryptography
Table of contents
- Ciphers
- Hashes
- Encoding
- Installation
- Running tests
- External libraries
- Adding external library
- Notes
- Contributions
- Authors
- Contributors
- License
Ciphers
Adfgvx
Anubis - 320
Atbash
Autokey
Bacon
Beaufort
Blowfish
Caesar
CAST - 5 / 6
Chaocipher
Elgamal
Gronsfeld
Keyword
Khazad - 128
Playfair
Porta
Rail fence
RC - 2 / 4 / 6
Scytale
Vigenere
Hashes
ADLER - 32
Blake2b - 160 / 256 / 384 / 512
CRC - 8 / 16 / 24 / 32 / 64
ELF - 32
FCS - 16
HAS - 160
KECCAK - 256 / 384 / 512
MD - 2 / 4 / 5
PBKDF2
RIPEMD - 128 / 160 / 256 / 320
SHA - 0 / 1 / 224 / 256 / 384 / 512
SHA2 - 224 / 256 / 384 / 512
SHA3 - 224 / 256 / 384 / 512
Skein - 256 / 512 / 1024
SM3
SUM - 8 / 16 / 24 / 32
TIGER - T / 2 / 128 / 160
WHIRLPOOL - 0 / 1 / W
XOR - 8
Encoding
A1z26
Adaptive Huffman
Base32
Base64
Base85
Base91
Huffman
Morse
RLE
Installation
- Download and install eclipse: https://www.eclipse.org/downloads/
- Download project source code by either cloning it with Git or by
Clone or download
menuDownload ZIP
option. - Open project in Eclipse
File
-Open projects from File System...
- Navigate to
/src
-cryptography
-Ciphers.java
and start play with it. Rest of the folder structure has method specific code and tests files for running automated tests.
I warmly recommend watching basic Eclipse tutorials if you are new to the topic.
Running tests
Jenkins
- Make new branch.
- Push changes.
- Open pull request.
- Later tests are run by Jenkins automation.
Manually
- Right click on
TestRunner.java
- Click
Coverage As
- Select
1 Java Application
- If everything is fine result is
Tests success: true
External libraries
commons-codec-1.10.jar
Included for Base32 and Base64 encoding methods.
jacksum-1.7.0 (jacksum.jar)
Included for many hashing algorithms. You can find all source code and details here: https://jacksum.loefflmann.net/en/download.html
core-1.58.0.0.jar | prov-1.58.0.0.jar | bcpg-jdk15on-1.58.0.0.jar | bcpkix-jdk15on-1.58.0.0.jar (Spongy Castle)
Providing tons of newer strong Cryptographic methods. See https://rtyley.github.io/spongycastle/ and http://www.bouncycastle.org/java.html
bcprov-jdk15on-166
BouncyCastle signed cryptography provider
org.junit_4.13.0.v20200204-1500.jar | core-1.3.0.jar
JUnit 4 jar and hamcrest core for Jenkins test runs.
Adding external library
Everytime new external jar library is added, it must be also added to build_jenkins.xml
in a block seen below as example
<path id="Cryptography.classpath">
<pathelement location="bin"/>
<path refid="JUnit 4.libraryclasspath"/>
<pathelement location="jar/commons-codec-1.10.jar"/>
<pathelement location="jar/jacksum.jar"/>
<pathelement location="jar/core-1.58.0.0.jar"/>
<pathelement location="jar/prov-1.58.0.0.jar"/>
<pathelement location="jar/bcpkix-jdk15on-1.58.0.0.jar"/>
<pathelement location="jar/bcpg-jdk15on-1.58.0.0.jar"/>
<pathelement location="jar/org.junit_4.13.0.v20200204-1500.jar"/>
<pathelement location="jar/core-1.3.0.jar"/>
<pathelement location="jar/bcprov-jdk15on-166"/>
</path>
Notes
Some ciphers or parts of ciphers originate from web sites, tutorials, repositories or other sources. There's unfortunately no links to original references.
Contributions
Rules?
Please, write tests if you make something new.
Found problem?
Open issue or make new branch and create pull request when problem is fixed.
Want to optimize code?
You are free to optimize code, make new branch and create pull request when ready.
Authors
- Norkator - Initial work - norkator
Contributors
- Saurav Kumar - Added Morse, Huffman - SKR301
License
See repo license section or license file.