car in 場站查車鎖車 ios
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5 年之前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #CocoaSecurity [![Build Status](https://secure.travis-ci.org/kelp404/CocoaSecurity.png?branch=master)](http://travis-ci.org/#!/kelp404/CocoaSecurity)
  2. Kelp https://twitter.com/kelp404/
  3. [MIT License][mit]
  4. [MIT]: http://www.opensource.org/licenses/mit-license.php
  5. CocoaSecurity include 4 classes, `CocoaSecurity`, `CocoaSecurityResult`, `CocoaSecurityEncoder` and `CocoaSecurityDecoder`.
  6. ##CocoaSecurity
  7. CocoaSecurity is core. It provides AES encrypt, AES decrypt, Hash(MD5, HmacMD5, SHA1~SHA512, HmacSHA1~HmacSHA512) messages.
  8. **MD5:**
  9. ```objective-c
  10. CocoaSecurityResult *md5 = [CocoaSecurity md5:@"kelp"];
  11. // md5.hex = 'C40C69779E15780ADAE46C45EB451E23'
  12. // md5.hexLower = 'c40c69779e15780adae46c45eb451e23'
  13. // md5.base64 = 'xAxpd54VeAra5GxF60UeIw=='
  14. ```
  15. **SHA256:**
  16. ```objective-c
  17. CocoaSecurityResult *sha256 = [CocoaSecurity sha256:@"kelp"];
  18. // sha256.hexLower = '280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9'
  19. // sha256.base64 = 'KA+LuMQ9Uy84nvDipTISILB4KwZSBdzfy42PAu1RFbk='
  20. ```
  21. **default AES Encrypt:**<br/>
  22. key -> SHA384(key).sub(0, 32)<br/>
  23. iv -> SHA384(key).sub(32, 16)
  24. ```objective-c
  25. CocoaSecurityResult *aesDefault = [CocoaSecurity aesEncrypt:@"kelp" key:@"key"];
  26. // aesDefault.base64 = 'ez9uubPneV1d2+rpjnabJw=='
  27. ```
  28. **AES256 Encrypt & Decrypt:**
  29. ```objective-c
  30. CocoaSecurityResult *aes256 = [CocoaSecurity aesEncrypt:@"kelp"
  31. hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
  32. hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
  33. // aes256.base64 = 'WQYg5qvcGyCBY3IF0hPsoQ=='
  34. CocoaSecurityResult *aes256Decrypt = [CocoaSecurity aesDecryptWithBase64:@"WQYg5qvcGyCBY3IF0hPsoQ=="
  35. hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
  36. hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
  37. // aes256Decrypt.utf8String = 'kelp'
  38. ```
  39. ##CocoaSecurityResult
  40. CocoaSecurityResult is the result class of CocoaSecurity. It provides convert result data to NSData, NSString, HEX string, Base64 string.
  41. ```objective-c
  42. @property (strong, nonatomic, readonly) NSData *data;
  43. @property (strong, nonatomic, readonly) NSString *utf8String;
  44. @property (strong, nonatomic, readonly) NSString *hex;
  45. @property (strong, nonatomic, readonly) NSString *hexLower;
  46. @property (strong, nonatomic, readonly) NSString *base64;
  47. ```
  48. ##CocoaSecurityEncoder
  49. CocoaSecurityEncoder provides convert NSData to HEX string, Base64 string.
  50. ```objective-c
  51. - (NSString *)base64:(NSData *)data;
  52. - (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower;
  53. ```
  54. **example:**
  55. ```objective-c
  56. CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
  57. NSString *str1 = [encoder hex:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding] useLower:NO];
  58. // str1 = '6B656C70'
  59. NSString *str2 = [encoder base64:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding]];
  60. // str2 = 'a2VscA=='
  61. ```
  62. ##CocoaSecurityDecoder
  63. CocoaSecurityEncoder provides convert HEX string or Base64 string to NSData.
  64. ```objective-c
  65. - (NSData *)base64:(NSString *)data;
  66. - (NSData *)hex:(NSString *)data;
  67. ```
  68. **example:**
  69. ```objective-c
  70. CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
  71. NSData *data1 = [decoder hex:@"CC0A69779E15780ADAE46C45EB451A23"];
  72. // data1 = <cc0a6977 9e15780a dae46c45 eb451a23>
  73. NSData *data2 = [decoder base64:@"zT1PS64MnXIUDCUiy13RRg=="];
  74. // data2 = <cd3d4f4b ae0c9d72 140c2522 cb5dd146>
  75. ```
  76. ##Installation
  77. 1. **git:**
  78. ```
  79. $ git clone git://github.com/kelp404/CocoaSecurity.git
  80. $ cd CocoaSecurity
  81. $ git submodule update --init
  82. ```
  83. 2. **<a href="http://cocoapods.org/?q=CocoaSecurity" target="_blank">CocoadPods</a>:**
  84. add `Podfile` in your project path
  85. ```
  86. platform :ios
  87. pod 'CocoaSecurity'
  88. ```
  89. ```
  90. $ pod install
  91. ```