投稿

10月, 2010の投稿を表示しています

iPhone/PHPでAES暗号を使う

暗号関連は既に色々なページにも載ってますがメモとして残しておきます。 簡易版の為ECBモードになっていますがWEB上で公開するアプリを作る場合は必ずCBCやCTR で行うようにしてください。 クライアント側がiPhoneでサーバー側がPHP 準備 暗号サンプル CryptoExercise base64 iPhone クライアント側 char * key = "0123456789ABCDEF"; // 16文字 NSData * symmetricKey = [NSData dataWithBytes:key length:16]; NSString* text = @"AES暗号化テスト"; CCOptions padding = kCCOptionPKCS7Padding|kCCOptionECBMode; NSData* data = [[SecKeyWrapper sharedWrapper] doCipher: [text dataUsingEncoding:NSShiftJISStringEncoding] // エンコード文字列は適当に変更してください。 key:symmetricKey context:kCCEncrypt padding:&padding]; [Base64 initialize]; NSString* base64String = [Base64 encode:data]; PHP サーバー側 function pkcs7_unpad($data) { $pad = ord($data{strlen($data)-1}); if ($pad > strlen($data)) { return false; } if (strspn($data, chr($pad), strlen($data) - $pad)