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

Mái uốn xoăn như “bà thím” vẫn được loạt sao Hàn yêu thích, nhờ sự thay đổi này mà ai cũng trẻ trung hơn hẳn

Cô bé "The Voice Kids Anh" nhận ngay nút vàng tại "Got Talent Mỹ" với màn trình diễn quá đáng yêu

qBittorrent 4.1.1 免安裝中文版 - 取代uTorrent的BT下載器