gpt4 book ai didi

ios - 无法解密AES256密文

转载 作者:行者123 更新时间:2023-11-28 18:52:08 36 4
gpt4 key购买 nike

我用了那么多库,那么多函数,就是解不开。

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”

谢谢。

最佳答案

有一些错误和潜在的错误:

  1. 您指定的 AES 具有 256 位 key (AES256DecryptWithKey),但提供的是 128 位(16 字节) key 。使用 128 位 key 指定 AES 或提供 256 位 key 。

  2. AES 的 block 大小为 16 字节,您提供 32 字节的 IV,IV 应该是 16 字节。

也许您将 key 和 IV 颠倒了。

  1. 您正在以 Base64 编码提供加密数据,加密方法可能希望输入为 NSData 或 NSString。长度必须是 block 大小的倍数,对于 AES 为 16 字节,提供错误长度的加密数据是您从 CCCrypt 中获得错误的少数几种方法之一,其中解密方法是最可能正在使用。

  2. 您没有提供预期的解密结果,这使得解决方案的测试变得困难。

  3. 加密数据为32字节(Base64解码后)。 “heidi”小于 block 大小,因此将填充到 16 字节。这留下了一个神秘的 16 字节。

关于ios - 无法解密AES256密文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39825400/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com