
Encrypt.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | public class Encrypt { // 密碼表字元陣列 private char [] code = new char [26]; // 建構子 public Encrypt() { setCode(); } // setter public void setCode() { int a = 0; int b = 0; while (a % 2 == 0) { a = ( int ) (Math.random() * 10); b = ( int ) (Math.random() * 10); } int x, y, m, i; char c = 'a' ; for (i = 0; i < 26; i++) { x = c; y = x * a + b; m = y % 26; code[i] = ( char ) (m + 97); c++; } } // getter public char [] getCode() { return code; } // 編碼的方法 public String toEncode(String s) { char [] cs = s.toCharArray(); int i, ci, d, m; char r; String rs = "" ; Character cc; for (i = 0; i < cs.length; i++) { if (cs[i] >= 97 && cs[i] <= 122) { ci = cs[i]; m = ci - 97; cs[i] = code[m]; } } for (i = 0; i < cs.length; i++) { cc = new Character(cs[i]); rs = rs.concat(cc.toString()); } return rs; } // 解碼的方法 public String toDecode(String s) { char [] cs = s.toCharArray(); int i, j; char r; String rs = "" ; Character cc; for (i = 0; i < cs.length; i++) { if (cs[i] >= 97 && cs[i] <= 122) { for (j = 0; j <= code.length; j++) { if (cs[i] == code[j]) { cs[i] = ( char ) (j + 97); break ; } } } } for (i = 0; i < cs.length; i++) { cc = new Character(cs[i]); rs = rs.concat(cc.toString()); } return rs; } // 測試的 main() public static void main(String[] args) { Encrypt e = new Encrypt(); System.out.println(e.getCode()); String s = "There is no spoon" ; System.out.println(s); String s1 = e.toEncode(s); System.out.println(s1); String s2 = e.toDecode(s1); System.out.println(s2); } } /* 檔名: Encrypt.java 作者: Kaiching Chang 時間: September, 2014 */ |
the end

沒有留言:
張貼留言