Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.*;
- import java.lang.reflect.Array;
- import java.util.Arrays;
- import java.util.stream.IntStream;
- public class pod_1 {
- static String encryption(String s, String k)
- {
- //geting length of msg and key
- int temp1 = s.length() % 8;
- int mising_chars = 8 - temp1;
- for(int i = 0; i < mising_chars; i++)
- {
- s = s + " ";
- }
- //putting message into char[]
- char[] msg_to_encript = s.toCharArray();
- char[] key = k.toCharArray();
- //setting up columns and rows size
- int columns = 8;
- int rows = 0;
- rows = (msg_to_encript.length / 8);
- //creating matrixes
- char[][] matrix = new char[rows][columns];
- char[][] sorted_matrix = new char[columns][rows];
- //putting key into matrix
- for(int i = 0; i < columns; i++)
- {
- matrix[0][i] = key[i];
- }
- //putting message into matrix
- int temp2 = 0;
- int c2 = 0;
- for(int r = 1; r < rows; r++)
- {
- for(int c = 0; c < columns; c++)
- {
- matrix[r][c] = msg_to_encript[(c + c2)];
- temp2 = c;
- }
- c2 = c2 + temp2 + 1;
- }
- //printing matrix
- for(int r = 0; r < rows; r++)
- {
- for(int c = 0; c < columns; c++)
- {
- System.out.print(matrix[r][c]);
- }
- System.out.println();
- }
- System.out.println();
- //rotating matrix
- for(int r = 0; r < rows; r++)
- {
- for(int c = 0; c < columns; c++)
- {
- sorted_matrix[c][r] = matrix[r][c];
- }
- }
- //printing sorted matrix
- // for(int c = 0; c < columns; c++)
- // {
- // for(int r = 0; r < rows; r++)
- // {
- // System.out.print(sorted_matrix[c][r]);
- // }
- // System.out.println();
- // }
- // System.out.println();
- Arrays.sort(sorted_matrix, (a, b) -> Integer.compare((int)a[0], (int)b[0]));
- // //printing sorted matrix
- // for(int c = 0; c < columns; c++)
- // {
- // for(int r = 0; r < rows; r++)
- // {
- // System.out.print(sorted_matrix[c][r]);
- // }
- // System.out.println();
- // }
- // System.out.println();
- //printing sorted matrix
- //creating encrypted message basing on sorted matrix
- String encrypted_msg = "";
- for(int r = 0; r < columns; r++)
- {
- for(int c = 1; c < rows; c++)
- {
- encrypted_msg += String.valueOf(sorted_matrix[r][c]);
- }
- }
- // System.out.println(encrypted_msg);
- // System.out.println();
- return encrypted_msg;
- }
- static String decryption(String s, String k)
- {
- // System.out.println(s);
- // System.out.println();
- char[] msg_to_decript = s.toCharArray();
- char[] key = k.toCharArray();
- char[] helper_key = {'0', '1', '2', '3', '4', '5', '6', '7'};
- int columns = 8;
- int rows = (msg_to_decript.length / 8);
- char[][] matrix = new char[rows+1][columns];
- char[][] rotated_matrix = new char[columns][rows + 1];
- char[][] decrypted_matrix = new char[columns][rows+1];
- //putting key into matrix
- for(int i = 0; i < columns; i++)
- {
- matrix[0][i] = helper_key[i];
- }
- //putting message into matrix
- int temp = 0;
- int r2 = 0;
- for(int c = 0; c < columns; c++)
- {
- for (int r = 1; r <= rows; r++)
- {
- matrix[r][c] = msg_to_decript[r-1+r2];
- temp = r;
- }
- r2 = r2+ temp;
- }
- // //printing matrix
- // for(int c = 0; c < columns; c++)
- // {
- // for(int r = 0; r <= rows; r++)
- // {
- // System.out.print(matrix[r][c]);
- // }
- // System.out.println();
- // }
- //rotating matrix
- for(int c = 0; c < columns; c++)
- {
- for(int r = 0; r <= rows; r++)
- {
- rotated_matrix[c][r] = matrix[r][c];
- }
- }
- for(int i = 0; i < key.length; i++)
- {
- for(int c = 0; c < columns; c++)
- {
- if(key[i] == rotated_matrix[c][0])
- {
- for(int r = 0; r <= rows; r++)
- {
- decrypted_matrix[c][r] = rotated_matrix[c][r];
- }
- }
- }
- }
- for(int r = 0; r <= rows; r++)
- {
- for(int c = 0; c < columns; c++)
- {
- System.out.print(decrypted_matrix[c][r]);
- }
- System.out.println();
- }
- String decrypted_msg = "";
- for(int i = 0; i < key.length; i++)
- {
- for(int c = 0; c < columns; c++)
- {
- if(key[i] == decrypted_matrix[c][0])
- {
- for(int r = 0; r <= rows; r++)
- {
- decrypted_msg += String.valueOf(decrypted_matrix[c][r]);
- }
- }
- }
- }
- System.out.println();
- System.out.println(decrypted_msg);
- String ss = "return kurwo";
- return ss;
- }
- static void gui()
- {
- JFrame window = new JFrame();
- window.setTitle("Derulo Chiper Machine");
- window.setSize(400, 220);
- window.setLayout(new BorderLayout());
- window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- window.setVisible(true);
- }
- public static void main(String args[])
- {
- decryption(encryption("pszczoły są żółte i fajne", "53742601"), "53742601");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement