Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.*;
- public class enigma3 {
- public static void main(String[] args) {
- //String str = new String("");
- String str = new String("I have to put data");
- int[] code = generateRandomCode(str.length());
- int[] code2 = new int[] {11, 9, 2, 16, 6, 7, 4, 5, 3, 12, 14, 10, 15, 17, 13, 0, 1, 8};
- System.out.println("code: " + Arrays.toString(code));
- //decypher(cypher(str,code),code);
- cypher(str, code2);
- decypher("\u0080)j\u0084&{zjd\u0080rzpr-I!w",code2);
- }
- public static String cypher(String str, int[] iArr){
- char[] cArr = str.toCharArray();
- char[] result = new char[cArr.length];
- int ascii;
- for (int i = 0; i < cArr.length ; i++) {
- result [i] = cArr[ iArr[i] ];
- ascii = (int) result [i];
- ascii += iArr[i];
- result [i] = (char) ascii;
- }
- System.out.println();
- System.out.println("cyphered: " + new String(result));
- return new String(result);
- }
- public static String decypher(String str, int[] iArr){
- char[] cArr = str.toCharArray();
- char[] result = new char[cArr.length];
- int ascii;
- for (int i = 0; i < cArr.length ; i++) {
- result[ iArr[i] ] = cArr[i];
- ascii = (int) result [iArr[i]];
- ascii -= iArr[i];
- result [iArr[i]] = (char) ascii;
- }
- System.out.println();
- System.out.println("decyphered: " + new String(result));
- return new String(result);
- }
- public static int[] generateRandomCode(int length){
- int[] iArr = new int[length];
- Set<Integer> generated = new LinkedHashSet<Integer>();
- Random rng = new Random();
- while (generated.size() < length) {
- Integer next = rng.nextInt(length) + 0;
- generated.add(next);
- }
- List<Integer> list = new ArrayList<Integer>(generated);
- for (int i = 0; i < length; i++) {
- iArr[i] = list.get(i);
- }
- return iArr;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement