2017-03-21 9 views
-1

내 서비스에서 바이트 배열로 키를 제공합니다. 예를 들어 : 아이폰 OS에서바이트 배열에서 iOS의 AES 키 설정

(byte) 0x16, (byte) 0xBB, (byte) 0xAB, (byte) 0xEA, (byte) 0x85, (byte) 0xA7,(byte) 0xD4, (byte) 0xE5, (byte) 0x2F, (byte) 0x7F, (byte) 0x28, (byte) 0x4C, (byte) 0x96, (byte) 0x7D, 

의 AES 키는 문자열입니다. iOS에서이 바이트 배열을 키로 사용하려고합니다.

+0

내가 근거가에 신고 한 당신이 무엇을 요구하는지는 매우 불분명합니다. 너 여기서 뭘하려고하는거야? – ymbirtt

+1

질문을 읽고 이해할 수 있습니까? 당분간 나는 당신이 무엇을 성취하려고하는지 짐작할 수 없습니다. – Balanced

+0

@ Dev4Anker 최소한 읽을 수 있도록 질문을 편집했습니다. 당신이 시도한 것과 그 오류가 무엇인지 예를 들어 줄 수 있습니까? 또한 Objective-C 또는 Swift를 사용하고 있습니까? 이 정보를 포함 시키려면 직접 질문을 편집하십시오. –

답변

0

이 OC 코드 ------

암호화 AES는 NOPadding //

- (을 NSData *) AES128Encrypt는 {

NSUInteger dataLength = [self length]; 
size_t bufferSize = dataLength + kCCBlockSizeAES128; 
void *buffer = malloc(bufferSize); 
size_t numBytesEncrypted = 0; 
// Encrypt Key 
Byte keybyte[]={0x77,0x24,0x56,0xf2,0xa7,0x66,0x4c,0xf3,0x39, 0x2c,0x35,0x97,0xe9,0x3e,0x57,0x47}; 
NSData *keyData=[[NSData alloc]initWithBytes:keybyte length:16]; 
const void *vKey = (const void *)[keyData bytes]; 
//Encrypt Iv 
Byte ivbyte[]={0x24,0x4e,0x6d,0x8a,0x56,0xac,0x87,0x91, 
    0x24,0x43,0x2d,0x8b,0x6c,0xbc,0xa2,0xc4}; 
NSData *IvData=[[NSData alloc]initWithBytes:ivbyte length:16]; 
const void *vIv = (const void *)[IvData bytes]; 


CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, 
             kCCAlgorithmAES128, 
             0x0000, 
             vKey, 
             kCCBlockSizeAES128, 
             vIv, 
             [self bytes], 
             dataLength, 
             buffer, 
             bufferSize, 
             &numBytesEncrypted); 
if (cryptStatus == kCCSuccess) { 
    return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted]; 
} 
free(buffer); 
return nil; 

가}