Encrypt.m 的原始程式碼如下
#import <Foundation/Foundation.h> #import "Encrypt.h" @implementation Encrypt @synthesize cArray, oArray; - (id) initRandomEncrypt { // 設置 y = a * x + b 中的 a 與 b int a = 0; int b = 0; do { a = arc4random() % 10; b = arc4random() % 10; } while (a % 2 == 0); // 建立 oArray 及 cArray oArray = [NSArray arrayWithObjects: @"a", @"b", @"c", @"d", @"e", @"f", @"g", @"h", @"i", @"j", @"k", @"l", @"m", @"n", @"o", @"p", @"q", @"r", @"s", @"t", @"w", @"v", @"u", @"x", @"y", @"z", nil]; cArray = [NSMutableArray arrayWithCapacity: 26]; // 製作密碼表 cArray int n = 26; char c = 'a'; int i, d, ci, count, m; for (i = 0, count = c;i < n;i++) { ci = count; d = ci * a + b; m = d % n; [cArray addObject: [oArray objectAtIndex: m]]; count++; } // 回傳 self return self; } - (NSString *) toEncode: (NSString *) s { NSString *r = @""; int number = [s length]; char ct; int i; for (i = 0;i < number;i++) { ct = [s characterAtIndex: i]; if (ct >= 97 && ct <= 122) { r = [r stringByAppendingString: [cArray objectAtIndex: ct - 97]]; } else { r = [r stringByAppendingFormat: @"%c", ct]; } } return r; } - (NSString *) toDecode: (NSString *) s { NSString *r = @""; int number = [s length]; char ct; int i, j; for (i = 0;i < number;i++) { ct = [s characterAtIndex: i]; if (ct >= 97 && ct <= 122) { for (j = 0;j < 26;j++) { if (ct == [[cArray objectAtIndex: j] characterAtIndex: 0]) { r = [r stringByAppendingString: [oArray objectAtIndex: j]]; break; } } } else { r = [r stringByAppendingFormat: @"%c", ct]; } } return r; } @end
您可以繼續參考
範例程式碼
相關目錄
Objective-C 入門指南
Objective-C 教材
首頁
參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide
沒有留言:
張貼留言