diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..d171cd4
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index d3ffd6b..57e67ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
+/bin/
diff --git a/.project b/.project
new file mode 100644
index 0000000..1db81ce
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ MelcryptJavaAPI
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/src/de/Thiesyy/MelcryptJavaAPI/Core/Melcrypt.java b/src/de/Thiesyy/MelcryptJavaAPI/Core/Melcrypt.java
new file mode 100644
index 0000000..9028e1d
--- /dev/null
+++ b/src/de/Thiesyy/MelcryptJavaAPI/Core/Melcrypt.java
@@ -0,0 +1,72 @@
+package de.Thiesyy.MelcryptJavaAPI.Core;
+
+import java.util.Random;
+
+import de.Thiesyy.MelcryptJavaAPI.Util.KeyGenerator;
+import de.Thiesyy.MelcryptJavaAPI.Util.MelcryptDataSet;
+
+public class Melcrypt {
+public static MelcryptDataSet encode(int security, String Text) {
+ System.out.println("Encrypting can take large Calculation power!");
+String[] Keys = new String[security];
+for(int x = 0; x != security; x++) {
+Keys[x] = KeyGenerator.generateKey();
+}
+for(String x : Keys) {
+Text = encrypt(x, Text);
+}
+return new MelcryptDataSet(Keys, Text);
+}
+private static String encrypt(String key, String Text) {
+ int Length = Text.length() * 9;
+ String Rdm = genRdmStr(Length);
+ String toRet = Rdm;
+ long KeyLoc = -1;
+ long Loc = 0;
+ StringBuilder Return = new StringBuilder(Rdm);
+ for(int x = 0; x != Text.length(); x++) {
+ KeyLoc++;
+ Loc += Integer.parseInt(key.charAt((int) (KeyLoc % 8))+"");
+ Return.setCharAt((int) Loc, Text.charAt(x));
+ }
+ toRet = Return.toString();
+
+return toRet;
+}
+
+private static String genRdmStr(int length) {
+ String toUse = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz[]}{?.,=!§$%&()1234567890";
+ String built = "";
+ for(int x = 0; x != length; x++)
+ built += toUse.charAt(new Random().nextInt(toUse.length()));
+
+return built;
+}
+public static String decode(MelcryptDataSet MDS) {
+String Crypted = MDS.getCrypted();
+String[] keays = new String[MDS.getCodes().length];
+int a = keays.length-1;
+for(String x : MDS.getCodes()) {
+ keays[a] = x;
+ a--;
+}
+
+for(String key : keays) {
+Crypted = decrypt(key, Crypted);
+}
+return Crypted;
+
+}
+private static String decrypt(String key, String crypted) {
+ String toRet = "";
+ int RealtextLength = crypted.length() / 9;
+ int KeyLoc = -1;
+ int Loc = 0;
+ for(int x = 0; x != RealtextLength; x++) {
+ KeyLoc++;
+ Loc += Integer.parseInt(key.charAt(KeyLoc % 8)+"");
+ toRet += crypted.charAt(Loc);
+}
+ return toRet;
+}
+}
diff --git a/src/de/Thiesyy/MelcryptJavaAPI/Core/Test.java b/src/de/Thiesyy/MelcryptJavaAPI/Core/Test.java
new file mode 100644
index 0000000..d0d2eaa
--- /dev/null
+++ b/src/de/Thiesyy/MelcryptJavaAPI/Core/Test.java
@@ -0,0 +1,12 @@
+package de.Thiesyy.MelcryptJavaAPI.Core;
+
+import de.Thiesyy.MelcryptJavaAPI.Util.MelcryptDataSet;
+
+public class Test {
+public static void main(String[] args) {
+MelcryptDataSet x = Melcrypt.encode(4, "Yalla habibi");
+System.out.println(x.getCrypted());
+System.out.println(Melcrypt.decode(x));
+
+}
+}
diff --git a/src/de/Thiesyy/MelcryptJavaAPI/Util/KeyGenerator.java b/src/de/Thiesyy/MelcryptJavaAPI/Util/KeyGenerator.java
new file mode 100644
index 0000000..5dfd620
--- /dev/null
+++ b/src/de/Thiesyy/MelcryptJavaAPI/Util/KeyGenerator.java
@@ -0,0 +1,24 @@
+package de.Thiesyy.MelcryptJavaAPI.Util;
+
+import java.security.SecureRandom;
+import java.util.Random;
+
+
+public class KeyGenerator {
+ /**
+ * Returns a random Key for the Melcrypt Encryption.
+ * @return
+ */
+
+public static String generateKey() {
+String x = "";
+for(int y = 0; y != 8; y++) {
+int z;
+z = (int) ((new Random().nextInt(10)*4+new SecureRandom().nextInt(10)+System.currentTimeMillis()+new Random().nextInt(10))%10);
+if(z==0)z=3;
+x+=z;
+}
+return x;
+}
+}
+
diff --git a/src/de/Thiesyy/MelcryptJavaAPI/Util/MelcryptDataSet.java b/src/de/Thiesyy/MelcryptJavaAPI/Util/MelcryptDataSet.java
new file mode 100644
index 0000000..54d341b
--- /dev/null
+++ b/src/de/Thiesyy/MelcryptJavaAPI/Util/MelcryptDataSet.java
@@ -0,0 +1,30 @@
+package de.Thiesyy.MelcryptJavaAPI.Util;
+
+public class MelcryptDataSet {
+private String[] codes;
+private String Crypted;
+/**
+ * Returns a random Key for the Melcrypt Encryption.
+ * @param Codes
+ * @param Cryptedtext
+ * @return
+ * Data Set with Codes and Crypted Text
+ */
+public MelcryptDataSet(String[] codes, String Crypted) {
+this.codes = codes;
+this.Crypted = Crypted;
+}
+public String[] getCodes() {
+ return codes;
+}
+public void setCodes(String[] codes) {
+ this.codes = codes;
+}
+public String getCrypted() {
+ return Crypted;
+}
+public void setCrypted(String crypted) {
+ Crypted = crypted;
+}
+
+}