/** * Columnar Transposition Cipher Encryption and Decryption. * @author freitzzz */ public class ColumnarTranspositionCipher { private static String keyword; private static Object[][] table; private static String abecedarium; public static final String ABECEDARIUM="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.;:-@"; private static final String ENCRYPTION_FIELD="≈"; private static final char ENCRYPTION_FIELD_CHAR='≈'; /** * Encrypts a certain String with the Columnar Transposition Cipher Rule * @param word Word being encrypted * @param keyword String with keyword being used * @return a String with the word encrypted by the Columnar Transposition Cipher Rule */ public static String encrpyter(String word,String keyword){ ColumnarTranspositionCipher.keyword=keyword; abecedariumBuilder(500); table=tableBuilder(word); Object[][] sortedTable=sortTable(table); String wordEncrypted=""; for(int i=0;iword.length()/keyword.length()){ return (word.length()/keyword.length())+1; }else{ return word.length()/keyword.length(); } } private static Object[] findElements(){ Object[] charValues=new Object[keyword.length()]; for(int i=0;i(int)table[0][j]){ Object[] column=getColumn(tableSorted,tableSorted.length,i); switchColumns(tableSorted,j,i,column); } } } return tableSorted; } private static Object[] getColumn(Object[][] table,int rows,int column){ Object[] columnArray=new Object[rows]; for(int i=0;i>> "+wordBeingEncrypted); System.out.println("Word encrypted ->>> "+ColumnarTranspositionCipher.encrpyter(wordBeingEncrypted,keywordForExample)); System.out.println("Word decryped ->>> "+ColumnarTranspositionCipher.decrypter()); System.out.println("\n### Encrypted Table ###"); showTable(); } }