Swift 入門指南 V1.00 - Encrypt.swift
- Get link
 - X
 - Other Apps
 
Swift 入門指南 V1.00 - Encrypt.swift

import Cocoa  | 
class Encrypt {  | 
|    // 英文小寫字母表 | 
|    let alphabet = "abcdefghijklmnopqrstwuvxyz" | 
|    // 密碼表整數陣列 | 
|    var code = Array(arrayLiteral: 26) | 
|    // 建構子 | 
| init() { | 
| setCode() | 
| } | 
| // 設定密碼表 | 
| func setCode() { | 
| var a = 0 | 
| var b = 0 | 
|       // a 必須是奇數 | 
| while a % 2 == 0 { | 
|          a = Int(arc4random() % 10) | 
|          b = Int(arc4random() % 10) | 
| } | 
| var c = 97 | 
|       var i, x, y, m: Int | 
|       // 以迴圈取得每一個餘數 | 
| for i = 0; i < 26; i++ { | 
| x = c | 
| y = x * a + b | 
| m = y % 26 | 
| code.append(m) | 
| c++ | 
| } | 
|       // 移除第一個預設值 | 
| code.removeAtIndex(0) | 
| } | 
|    // 由字元從字母表中找到索引值 | 
| func findAlphabetIndex(chr: Character) -> Int { | 
| var i = 0 | 
| for c in alphabet { | 
| if chr == c { | 
| return i | 
| } | 
| i++ | 
| } | 
| return 0 | 
| } | 
|    // 由字元從密碼表中找到索引值 | 
| func findCodeIndex(chr: Character) -> Int { | 
| var n = findAlphabetIndex(chr) | 
| var i = 0 | 
| for d in code { | 
| if d == n { | 
| return i | 
| } | 
| i++ | 
| } | 
| return -1 | 
| } | 
|    // 判斷是否為英文小寫字母的字元 | 
| func isLowercase(chr: Character) -> Bool { | 
| for i in alphabet { | 
| if (chr == i) { | 
|             return true | 
| } | 
| } | 
|       return false | 
| } | 
|    // 由索引值找到密碼表中對應的字元 | 
| func findCode(number: Int) -> Character { | 
| let index = code[number] | 
| var i = 0 | 
| for s in alphabet { | 
| if i == index { | 
| return s | 
| } | 
| i++ | 
| } | 
|       return Character("") | 
| } | 
|    // 由索引值找到字母表中對應的字元 | 
| func findLetter(index: Int) -> Character { | 
| var i = 0 | 
| for s in alphabet { | 
| if i == index { | 
| return s | 
| } | 
| i++ | 
| } | 
|       return Character("") | 
| } | 
|    // 進行編碼的方法 | 
| func toEncode(str: String) -> String { | 
|       var newStr = "" | 
| for chr in str { | 
| if isLowercase(chr) { | 
| newStr.append(findCode(findAlphabetIndex(chr))) | 
| } | 
| else { | 
| newStr.append(chr) | 
| } | 
| } | 
| return newStr | 
| } | 
|    // 進行解碼的方法 | 
| func toDecode(str: String) -> String { | 
|       var newStr = "" | 
| for chr in str { | 
| if isLowercase(chr) { | 
| newStr.append(findLetter(findCodeIndex(chr))) | 
| } | 
| else { | 
| newStr.append(chr) | 
| } | 
| } | 
| return newStr | 
| } | 
| } | 
訂閱:
張貼留言 (Atom)
window.___gcfg = { 'lang': 'zh-TW' };
- Get link
 - X
 - Other Apps
 

沒有留言:
張貼留言