以前說過, iOS 的加密解密方法很是不方便, 不易於和 PHP 或者 Java 之間交互, 比較封閉.html
爲了和PHP服務器端方便地進行加密解密操做, 我封裝了 RSA 類. 使用這個類, 你能夠用你喜歡的工具, 如 openssl 命令行, PHP 腳本, 生成友好的公鑰或者私租文本, 而後 iOS 使用這些密鑰進行加密, PHP 進行解密, 或者 PHP 進行解密, 由 iOS 進行解密.git
方法以下:github
// return base64 encoded string + (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey; // return raw data + (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey; // TODO: //+ (NSString *)encryptString:(NSString *)str privateKey:(NSString *)privKey; //+ (NSData *)encryptData:(NSData *)data privateKey:(NSString *)privKey; // decrypt base64 encoded string, convert result to string(not base64 encoded) + (NSString *)decryptString:(NSString *)str publicKey:(NSString *)pubKey; + (NSData *)decryptData:(NSData *)data publicKey:(NSString *)pubKey; // TODO: //+ (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey; //+ (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
目前能實現:編程
iOS 用公鑰加密, PHP 用私鑰解密服務器
PHP 用私鑰加密, iOS 用公鑰解密ide
iOS 用私鑰加密, PHP 用公鑰解密(未實現)工具
PHP 用公鑰加密, iOS 用私鑰解密(未實現)post
後面兩種場景的需求還未實現, 但很快會實現. 歡迎你來補充. 項目地址:https://github.com/ideawu/Objective-C-RSAui