Tôi có một mã Java như thế này:Iphone: làm thế nào toValidate mã xác thực thông điệp (Mac)
public static byte[] generateMac(byte[] key, byte[] cipherText,int offset,int length,int mac_size_bits)
{
byte[] result = null;
KeyParameter keyParam = null;
try {
keyParam = new KeyParameter(key);
CBCBlockCipherMac blockCipherMac = new CBCBlockCipherMac(new AESEngine(),mac_size_bits);
result = new byte[blockCipherMac.getMacSize()];
blockCipherMac.init(keyParam);
blockCipherMac.update(cipherText, offset, length);
blockCipherMac.doFinal(result, 0);
} catch (Exception e) {
// System.out.println(e);
return null;
} finally {
keyParam = null;
}
return result;
}
Trên iPhone Tôi viết nguệch ngoạc như thế này:
- (NSData *)generateMac:(NSData *)key cipherText:(NSData *)cipherText offset:(int)offset length:(int)length mac_size_bits:(int)mac_size_bits
Câu hỏi của tôi là, Tôi nên sử dụng phương thức nào cho CBCBlockCipherMac
, keyparameters
trong iPhone có thể giúp tôi bất kỳ?
An ninh nào là, trong iPhone/Mục tiêu c, có libKrypto và nếu AES của nó, thì nguồn mở của nó mà bạn có thể sử dụng ... – Amitg2k12
bộ mã hóa phổ biến mà tôi đang sử dụng – 012346