Advertisement
TsetsoP

SHA-256

Jun 24th, 2021
1,092
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.36 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.     public static char[] CurrBinaryString;
  5.     public static char[] PrevBinaryString;
  6.     public static char[] nameToCharArr;
  7.     public static char currentASCII;
  8.  
  9.     public static void main(String[] args) {
  10.         Scanner scan = new Scanner(System.in);
  11.         String Name = scan.nextLine();
  12.         nameToCharArr = Name.toCharArray();
  13.         int lengthOfArr = nameToCharArr.length;
  14.         int index = 0;
  15.         for (int i = 0; i < lengthOfArr; i++) {
  16.             int ascII = nameToCharArr[i];
  17.             PrevBinaryString = new char[lengthOfArr];
  18.             CurrBinaryString = new char[lengthOfArr];
  19.             CurrBinaryString = Integer.toBinaryString(ascII).toCharArray();
  20.             PrevBinaryString = Arrays.copyOf(CurrBinaryString, lengthOfArr);
  21.             if (CurrBinaryString.length < 8) {
  22.                 while (CurrBinaryString.length < 8) {
  23.                     addBytes();
  24.                 }
  25.             }
  26.             int rotations = 13;
  27.             PrevBinaryString = Arrays.copyOf(CurrBinaryString, CurrBinaryString.length);
  28.             rORANDShr(false, rotations);
  29.             XOR();
  30.             PrevBinaryString = Arrays.copyOf(CurrBinaryString, CurrBinaryString.length);
  31.             rotations = 7;
  32.             rORANDShr(false, rotations);
  33.             XOR();
  34.             int shifts = 3;
  35.             rORANDShr(true, shifts);
  36.             binToDec();
  37.             decToASCII();
  38.             asciiToNameCharArr(index);
  39.             index++;
  40.             System.out.println(Arrays.toString(CurrBinaryString));
  41.             System.out.println(currentASCII);
  42.  
  43.            
  44.         }
  45.         System.out.println(Arrays.toString(nameToCharArr));
  46.     }
  47.  
  48.     public static void binToDec() {
  49.         String currentBIN = String.valueOf(CurrBinaryString);
  50.  
  51.         currentDEC = Integer.parseInt(currentBIN, 2);
  52.         if(currentDEC < 33 || currentDEC > 126){
  53.             Random random = new Random();
  54.             int min = 33;
  55.             int max = 127;
  56.             currentDEC = random.nextInt(max - min + 1) + min;
  57.         }
  58.         System.out.println(currentDEC);
  59.     }
  60.  
  61.     public static void decToASCII() {
  62.         currentASCII = (char) currentDEC;
  63.     }
  64.  
  65.     public static  void asciiToNameCharArr(int index){
  66.         nameToCharArr[index] = currentASCII;
  67.     }
  68.  
  69.     public static void XOR() {
  70.         for (int i = 0; i < CurrBinaryString.length; i++) {
  71.             if (CurrBinaryString[i] == PrevBinaryString[i]) {
  72.                 CurrBinaryString[i] = '0';
  73.             } else {
  74.                 CurrBinaryString[i] = '1';
  75.             }
  76.         }
  77.  
  78.         public static void rORANDShr(boolean rorOrSHR, int rotations) {
  79.         if (!rorOrSHR) {
  80.  
  81.             for (int i = rotations; i > 0; i--) {
  82.                 char last = CurrBinaryString[CurrBinaryString.length - 1];
  83.                 for (int j = CurrBinaryString.length - 1; j > 0; j--) {
  84.                     CurrBinaryString[j] = CurrBinaryString[j - 1];
  85.                 }
  86.                 CurrBinaryString[0] = last;
  87.             }
  88.         }else {
  89.             for (int i = rotations; i > 0; i--) {
  90.                 for (int j = CurrBinaryString.length - 1; j > 0; j--) {
  91.                     CurrBinaryString[j] = CurrBinaryString[j - 1];
  92.                 }
  93.                 CurrBinaryString[0] = '0';
  94.             }
  95.  
  96.         }
  97.     }
  98.  
  99.  
  100.  
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement