{"id":19784370,"url":"https://github.com/mechiuw/java_cryptography-algorithm","last_synced_at":"2025-10-24T12:43:35.825Z","repository":{"id":245540474,"uuid":"818548915","full_name":"Mechiuw/JAVA_Cryptography-Algorithm","owner":"Mechiuw","description":"This is a basic algorithm for encryptions and decryptions using handmade algorithm logic using java.","archived":false,"fork":false,"pushed_at":"2024-06-22T09:26:59.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-06-09T17:02:40.062Z","etag":null,"topics":["basic-algorithms","basic-programming","caesar-cipher","cipher-algorithms","ciphers","cryptography","scripts"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mechiuw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-22T06:25:01.000Z","updated_at":"2024-06-23T03:38:37.000Z","dependencies_parsed_at":"2024-06-22T17:34:24.873Z","dependency_job_id":"5715f7dd-5d44-47ce-ac0f-5d35b606a687","html_url":"https://github.com/Mechiuw/JAVA_Cryptography-Algorithm","commit_stats":null,"previous_names":["mechiuw/java_cryptography-algorithm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mechiuw/JAVA_Cryptography-Algorithm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mechiuw%2FJAVA_Cryptography-Algorithm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mechiuw%2FJAVA_Cryptography-Algorithm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mechiuw%2FJAVA_Cryptography-Algorithm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mechiuw%2FJAVA_Cryptography-Algorithm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mechiuw","download_url":"https://codeload.github.com/Mechiuw/JAVA_Cryptography-Algorithm/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mechiuw%2FJAVA_Cryptography-Algorithm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265497896,"owners_count":23777091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["basic-algorithms","basic-programming","caesar-cipher","cipher-algorithms","ciphers","cryptography","scripts"],"created_at":"2024-11-12T06:11:18.387Z","updated_at":"2025-10-24T12:43:30.781Z","avatar_url":"https://github.com/Mechiuw.png","language":"Java","readme":"# Java Basic Cryptography Algorithm #\n\n### Introduction ###\nThis repository provides examples of using cryptography in Java for encryption and decryption purposes.\nbasic algorithm \n\n### Prerequisites ###\n##### Tech used : #####\n\n- Java Development Kit (JDK) 17 or higher\n- Git (optional, for cloning the repository)\n\n\n## ENC01\n```java\npackage algorithm;\n\nimport java.util.*;\n\npublic class ENCRYPT01 {\n    public static void run() {\n        String encrypted = encrypt(\"example\");\n        System.out.println(\"Encrypted message: \" + encrypted);\n\n        String decrypted = decrypt(encrypted);\n        System.out.println(\"Decrypted message: \" + decrypted);\n    }\n\n    public static String encrypt(String input) {\n        // BREAKING APART - CONVERT INTO CHAR\n        char[] layer1 = input.toCharArray();\n        List\u003cCharacter\u003e layer2 = new ArrayList\u003c\u003e();\n\n        // LAYER 1 ENCRYPT - ADD TO LIST\n        for (int i = layer1.length - 1; i \u003e= 0; i--) {\n            layer2.add(layer1[i]);\n        }\n\n        // LAYER 2 ENCRYPT - CHECK LOWERCASE AND UPPERCASE\n        char[] alphabets = \"abcdefghijklmnopqrstuvwxyz\".toCharArray();\n        char[] upperAlphabets = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".toCharArray();\n        List\u003cCharacter\u003e layer3 = new ArrayList\u003c\u003e();\n\n        for (char currentChar : layer2) {\n            boolean found = false;\n\n            // Check lowercase alphabet\n            for (int j = 0; j \u003c alphabets.length - 1; j++) {\n                if (alphabets[j] == currentChar) {\n                    layer3.add(alphabets[j + 1]);\n                    found = true;\n                    break;\n                }\n            }\n\n            // Check uppercase alphabet\n            if (!found) {\n                for (int j = 0; j \u003c upperAlphabets.length - 1; j++) {\n                    if (upperAlphabets[j] == currentChar) {\n                        layer3.add(upperAlphabets[j + 1]);\n                        break;\n                    }\n                }\n            }\n        }\n\n        // LAYER 3 - REPLACE WITH INDEX FOR 2, REPLACE WITH UPPERCASE FOR 3\n        for (int i = 0; i \u003c layer3.size(); i++) {\n            if (i % 2 == 0) {\n                layer3.set(i, Character.forDigit(i / 2, 10)); // Adjusted radix for digits\n            } else if (i % 3 == 0) {\n                layer3.set(i, Character.toUpperCase(layer3.get(i)));\n            }\n        }\n\n        // LAYER 4 - APPEND RESULT STRING\n        StringBuilder result = new StringBuilder();\n        for (char c : layer3) {\n            result.append(c);\n        }\n\n        return result.toString();\n    }\n\n    public static String decrypt(String input) {\n        // LAYER 4 - CONVERT STRING TO LIST OF CHARACTERS\n        List\u003cCharacter\u003e layer3 = new ArrayList\u003c\u003e();\n        for (char c : input.toCharArray()) {\n            layer3.add(c);\n        }\n\n        // LAYER 3 - REVERSE TRANSFORMATIONS\n        List\u003cCharacter\u003e originalChars = new ArrayList\u003c\u003e(layer3);\n        for (int i = 0; i \u003c layer3.size(); i++) {\n            if (i % 2 == 0) {\n                // Convert digits back to their original characters\n                int originalIndex = Character.getNumericValue(layer3.get(i)) * 2;\n                layer3.set(i, originalChars.get(originalIndex));\n            }\n        }\n\n        // LAYER 2 - REVERSE ALPHABET SHIFT\n        char[] alphabets = \"abcdefghijklmnopqrstuvwxyz\".toCharArray();\n        char[] upperAlphabets = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".toCharArray();\n        List\u003cCharacter\u003e layer2 = new ArrayList\u003c\u003e();\n\n        for (char currentChar : layer3) {\n            boolean found = false;\n\n            // Check lowercase alphabet\n            for (int j = 1; j \u003c alphabets.length; j++) {\n                if (alphabets[j] == currentChar) {\n                    layer2.add(alphabets[j - 1]);\n                    found = true;\n                    break;\n                }\n            }\n\n            // Check uppercase alphabet\n            if (!found) {\n                for (int j = 1; j \u003c upperAlphabets.length; j++) {\n                    if (upperAlphabets[j] == currentChar) {\n                        layer2.add(upperAlphabets[j - 1]);\n                        break;\n                    }\n                }\n            }\n        }\n\n        // LAYER 1 - REVERSE THE LIST TO GET ORIGINAL ORDER\n        Collections.reverse(layer2);\n\n        // Convert list back to string\n        StringBuilder result = new StringBuilder();\n        for (char c : layer2) {\n            result.append(c);\n        }\n\n        return result.toString();\n    }\n\n}\n```\n\n## OUTPUT\n```java\nEncrypted message: 0m1N2y3\nDecrypted message: xMl\n```\n\n\n## ENC02\n```java\npackage algorithm;\n\npublic class ENCRYPT02 {\n    public static void run() {\n        data(\"simple cryptography method being developed\");\n    }\n    public static void data(String encrypt){\n        char[] x = encrypt.toCharArray();\n        StringBuilder result = new StringBuilder();\n        for(char a : x){\n            a+=5;\n            result.append(a);\n            System.out.print(a);\n        }\n        System.out.println();\n        decrypt(String.valueOf(result));\n\n    }\n\n    public static void decrypt(String decrypt){\n        char[] brake = decrypt.toCharArray();\n        for(char x : brake){\n            x-=5;\n            System.out.print(x);\n        }\n    }\n}    \n```\n## OUTPUT\n```java\nencryption : xnruqj%hw~uytlwfum~%rjymti%gjnsl%ij{jqtuji\ndecryption : simple cryptography method being developed\n```\n\n\n## ENC 03\n```java\npackage algorithm;\n\npublic class ENCRYPT03 {\n    private static final String vocal = \"AEIOUaeiou\";\n    private static final char replacement = '#';\n    private static final char replacement2 = '\u0026';\n    private static final char replacement3 = '*';\n    private static int shift = 0;\n\n    public static void run() {\n        String encryptedMessage = data(\"CAN YOU understand THESE???\");\n        System.out.println(\"Encrypted: \" + encryptedMessage);\n        String decryptedMessage = decrypt(encryptedMessage);\n        System.out.println(\"Decrypted: \" + decryptedMessage);\n    }\n\n    public static String data(String encrypt) {\n        StringBuilder result = new StringBuilder();\n        for (char x : encrypt.toCharArray()) {\n            if (vocal.indexOf(x) != -1) {\n                if (shift \u003e 3) {\n                    result.append(replacement2);\n                } else {\n                    result.append(replacement);\n                }\n                shift++;\n            } else {\n                result.append(x);\n            }\n        }\n        result.reverse();\n        return result.toString();\n    }\n\n    public static String decrypt(String encrypted) {\n        StringBuilder result = new StringBuilder(encrypted);\n        result.reverse(); // Reverse the reversal done in encryption\n\n        StringBuilder decrypted = new StringBuilder();\n        for (int i = 0; i \u003c result.length(); i++) {\n            char currentChar = result.charAt(i);\n            if (currentChar == replacement || currentChar == replacement2 || currentChar == replacement3) {\n                if (shift \u003e 3) {\n                    decrypted.append(vocal.charAt(1)); // Replace with a specific vowel, adjust as needed\n                } else {\n                    decrypted.append(vocal.charAt(0)); // Replace with a specific vowel, adjust as needed\n                }\n                shift++;\n            } else {\n                decrypted.append(currentChar);\n            }\n        }\n        return decrypted.toString();\n    }\n}\n\n```\n\n## OUTPUT\n```java\nEncrypted: ???\u0026S\u0026HT dn\u0026tsr\u0026dn# ##Y N#C\nDecrypted: CEN YEE EndErstEnd THESE???\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmechiuw%2Fjava_cryptography-algorithm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmechiuw%2Fjava_cryptography-algorithm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmechiuw%2Fjava_cryptography-algorithm/lists"}