无法解密AES256密文
can't decrypt the AES256 encrypted text
用了那么多库,用了那么多函数,就是解不开
NSString *key = @"innoways21897016";
NSString *iv = @"61079821218970166107982121897016";
NSString *encrypted = @"iG5lIZKGevzV3UfhcqOzgA/xwKhAKjB75G1L4Z1s/RU=";
NSData *data = [encrypted dataUsingEncoding:NSUTF8StringEncoding];
NSData *dataDecrypted = [data AES256DecryptWithKey:key andIV:iv];
NSLog(@"decrypt data = %@",dataDecrypted);
NSString *receivedDataDecryptString = [[NSString alloc]initWithData:dataDecrypted encoding:NSUTF8StringEncoding];
NSLog(@"decrypt string = %@",receivedDataDecryptString);
receivedDataDecryptString
总是给我(空)响应而不是解密字符串。
输出将是 - "heidi"
谢谢。
有一些错误和潜在的错误:
您使用 256 位密钥 (AES256DecryptWithKey
) 指定 AES,但提供的是 128 位(16 字节)密钥。使用 128 位密钥指定 AES 或提供 256 位密钥。
AES 的块大小为 16 字节,您提供 32 字节的 IV,IV 应该是 16 字节。
也许您的密钥和 IV 颠倒了。
您正在以 Base64 编码提供加密数据,加密方法可能希望输入为 NSData
或 NSString。长度必须是块大小的倍数,AES 为 16 字节,提供错误长度的加密数据是解密方法最有可能使用的 CCCrypt
出错的少数几种方法之一。
您没有提供预期的解密结果,这使得解决方案的测试变得困难。
加密数据为32字节(Base64解码后)。 "heidi" 小于块大小,因此将填充为 16 字节。这留下了一个神秘的 16 字节。
用了那么多库,用了那么多函数,就是解不开
NSString *key = @"innoways21897016";
NSString *iv = @"61079821218970166107982121897016";
NSString *encrypted = @"iG5lIZKGevzV3UfhcqOzgA/xwKhAKjB75G1L4Z1s/RU=";
NSData *data = [encrypted dataUsingEncoding:NSUTF8StringEncoding];
NSData *dataDecrypted = [data AES256DecryptWithKey:key andIV:iv];
NSLog(@"decrypt data = %@",dataDecrypted);
NSString *receivedDataDecryptString = [[NSString alloc]initWithData:dataDecrypted encoding:NSUTF8StringEncoding];
NSLog(@"decrypt string = %@",receivedDataDecryptString);
receivedDataDecryptString
总是给我(空)响应而不是解密字符串。
输出将是 - "heidi"
谢谢。
有一些错误和潜在的错误:
您使用 256 位密钥 (
AES256DecryptWithKey
) 指定 AES,但提供的是 128 位(16 字节)密钥。使用 128 位密钥指定 AES 或提供 256 位密钥。AES 的块大小为 16 字节,您提供 32 字节的 IV,IV 应该是 16 字节。
也许您的密钥和 IV 颠倒了。
您正在以 Base64 编码提供加密数据,加密方法可能希望输入为
NSData
或 NSString。长度必须是块大小的倍数,AES 为 16 字节,提供错误长度的加密数据是解密方法最有可能使用的CCCrypt
出错的少数几种方法之一。您没有提供预期的解密结果,这使得解决方案的测试变得困难。
加密数据为32字节(Base64解码后)。 "heidi" 小于块大小,因此将填充为 16 字节。这留下了一个神秘的 16 字节。