Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ex2 {
- static char[] sTable = {
- '3','4','1','2','0','9','7','6','5','8','D','C','F','A','B','E'
- };
- static char[] inverseSTable = new char[16];
- static {
- char[] hex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- for (int i = 0; i < 16; i++) {
- char mapped = sTable[i];
- int idx = Character.digit(mapped, 16);
- inverseSTable[idx] = hex[i];
- }
- }
- public static String encrypt(String block) {
- StringBuilder sb = new StringBuilder();
- for (char c : block.toCharArray()) {
- int index = Character.digit(c, 16);
- sb.append(sTable[index]);
- }
- return sb.toString();
- }
- public static String decrypt(String block) {
- StringBuilder sb = new StringBuilder();
- for (char c : block.toCharArray()) {
- int index = Character.digit(c, 16);
- sb.append(inverseSTable[index]);
- }
- return sb.toString();
- }
- public static void main(String[] args) {
- String block = "FA01AD";
- String original = block;
- System.out.println("Original block: " + block);
- int count = 0;
- do {
- block = encrypt(block);
- count++;
- System.out.println("After " + count + " substitution(s): " + block);
- } while (!block.equals(original));
- System.out.println("\nIt took " + count + " substitutions to return to the original block!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment