Click vào để trở lại trang tin
FB | DIỄN ĐÀN | TRANG TIN | THỊ TRƯỜNG | TÌM KIẾM      

Go Back   macvn.com > Macintosh OS > Mac Programming
Đăng ký Hỏi/Ðáp Thành Viên Lịch Ðánh Dấu Ðã Ðọc

Mac Programming Lập trình trên Mac, cùng chia sẻ kinh nghiệm, ý tưởng và sản phẩm.

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 18-07-2012, 14:02 PM   #1
chaucv
iNewbie
 
chaucv's Avatar
 
Tham gia: Jun 2012
Thứ tự: 63149
iĐangCó:
Bài: 11
Cảm ơn: 10
Được cảm ơn 0 lần / 0 bài.
chaucv is on a distinguished road
Wink hmac objective-c xin mọi người giúp đỡ

trong php có hàm hash_mac:
http://php.net/manual/en/function.hash-hmac.php
trong objective - c mình tìm được hàm này:
- (NSString *)HMACSHA1WithKeyNSString *)key andDataNSString *)data
{
const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
NSString *hash = [Base64 encode:HMAC];
return hash;
}


var key = "key";
var text = "text";
var ketqua = base64_encode(hash_hmac('SHA1',text,key));//php
var ketqua2 = [self HMACSHA1WithKey:key:text];//object-c

nhưng ketqua lại khác ketqua2.
anh em nào có kinh nghiệm hay hàm nào trong objective c tạo hash_mac có kết quả như trong php không? cho mình tham khảo với.

mình đang làm ứng dụng nhưng phải authen so sánh chuỗi hmac giữa iphone và máy chủ. máy chủ của mình lại là php.
nhờ mọi người giúp đỡ.

cảm ơn mọi người nhiều!
chaucv vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-07-2012, 15:03 PM   #2
phuongconut
iMember
 
Tham gia: Oct 2011
Thứ tự: 51358
iĐangCó:
Nơi cư trú: HCM
Bài: 76
Cảm ơn: 10
Được cảm ơn 9 lần / 8 bài.
phuongconut is on a distinguished road
Default

hình như bạn muốn mã hoá dư liệu và truyền qua lại giửa php và Ios client

trước đây mình sử dụng AES crypt đại khái như thế này:
+ Ios client
bạn down load 2 lớp này NSData+AESCrypt NSString+AESCrypt (google nhé) về nhé
  • mã hoá => gởi message
Code:
 - (void)sendMessage:(NSString*)pMessage {
    NSData *data = [[NSData alloc] initWithData:[pMessage dataUsingEncoding:NSASCIIStringEncoding]];
/*chổ này mình sài socket bạn có thể modify theo cách của bạn*/
    [outputStream write:[data bytes] maxLength:[data length]];
    [data release];
}
[self sendMessage:[jsonString AES256EncryptWithKey:key]];
  • nhận message => giải mã
Code:
[self messageReceived:[output AES256DecryptWithKey:key]];
+ php server
  • nhận message rồi giải mã
    Code:
    function decryptTextCBC($text, $key) {
            $iv2 = '';
            for ($i = 0; $i < 16; $i++) {
                $iv2 .= "\0";
            }
            $plain_text_CBC = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($text), MCRYPT_MODE_CBC, $iv2);
            return trim(substr($plain_text_CBC, 0, strrpos($plain_text_CBC, "}")+1));
        }
  • mã hoá rồi gởi message
    Code:
    function encryptTextCBC($text, $key) {
            $iv2 = '';
            for ($i = 0; $i < 16; $i++) {
                $iv2 .= "\0";
            }
            $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, trim($text), MCRYPT_MODE_CBC, $iv2);
            $cipher_text_CBC = base64_encode($ciphertext);
            return trim($cipher_text_CBC);
        }
    hope it useful
phuongconut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
(Những) thành viên sau đây cảm ơn phuongconut vì bài viết có ích này
chaucv (18-07-2012)
Old 18-07-2012, 16:14 PM   #3
chaucv
iNewbie
 
chaucv's Avatar
 
Tham gia: Jun 2012
Thứ tự: 63149
iĐangCó:
Bài: 11
Cảm ơn: 10
Được cảm ơn 0 lần / 0 bài.
chaucv is on a distinguished road
Lightbulb

cảm ơn bạn phuongconut đã trả lời!

hàm hmac của mình ra trên đã khớp rồi. do mình không biết key truyền vào 2 bên không khớp nhau nên kết quả cũng không khớp.

còn cái AES Encrypt, Decrypt cũng rất có ích cho mình.
mình sẽ down và sử dụng.

nếu ai cần hàm hash_hmac thì có thể lấy hàm đó ở trên.
chaucv vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
hmac

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 21:36 PM.


Powered by: vBulletin v3.8.7 & Copyright © 2013, Jelsoft Enterprises Ltd.
MacVN không chịu trách nhiệm cho nội dung trên đây