
Encrypt.m 的原始程式碼如下
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 | #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 = arc 4 random() % 1 0 ; b = arc 4 random() % 1 0 ; } 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 = 2 6 ; 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 >= 9 7 && ct <= 1 2 2 ) { 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 >= 9 7 && ct <= 1 2 2 ) { for (j = 0 ;j < 2 6 ;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
沒有留言:
張貼留言