2017-03-21 19 views
-1

我的服务为我提供了一个字节数组的密钥。例如:在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, 

在iOS中,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; 

}