Swift 入門指南 V1.00 - Encrypt.swift





































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
   }
}







沒有留言:




















window.___gcfg = { 'lang': 'zh-TW' };





Popular posts from this blog

迅雷 Thunder 7.9.43.5054 免安裝版 (9.1.41.914 安裝版) - 支援BT下載的萬用 檔案下載工具

Nhiều đồn đoán cho rằng bộ đồ "phá vỡ quy tắc" của Meghan Markle được lấy cảm hứng từ trang phục của Công nương Diana

Cụ ông 92 tuổi gào khóc vì mất hết tiền tiết kiệm cả đời, càng cay đắng hơn khi kẻ trộm là đứa cháu trai 34 tuổi