gpt4 book ai didi

ios - NSMutableData 到 NSString

转载 作者:行者123 更新时间:2023-11-28 19:26:43 25 4
gpt4 key购买 nike

大家好,我正在我的应用程序中使用对称加密来加密用户相互发送的消息。现在我正在尝试创建一个相当安全的 key 来使用 NSMutableData 解密此数据(解密 key )。目前我有两个问题:

  1. 用于解密的 256 位 key 是否足够安全?

  2. 我对 NSString 有一些疑问。当我想检索 NSMutableData 的字符串值时,我的 NSLog 总是返回一个空值

我哪里做错了?

NSMutableData *masterKey = [NSMutableData dataWithLength:32];
int result = SecRandomCopyBytes(kSecRandomDefault, 32, masterKey.mutableBytes);
if (result != noErr) {
NSLog(FAILED_MASTERKEY);
return;
}
NSLog(@"MASTER %@",[[NSString alloc] initWithData:masterKey encoding:NSUTF32StringEncoding]);

2018-11-28 16:06:31.803868+0100 [41860:9341804] MASTER (null)

最佳答案

您不能直接从任意二进制数据创建 NSString。备选方案包括显示十六进制表示(例如来自 description 方法)或使用二进制数据的其他一些文本表示(例如 base-64)。但是你不能只是将随机二进制数据传递给 -[NSString initWithData:encoding:]

NSLog(@"Hex:     %@", [masterKey description]);
NSLog(@"Hex: %@", masterKey); // directly logging the `NSData` will also use its `description`
NSLog(@"Base 64: %@", [masterKey base64EncodedStringWithOptions:0]);

通过 Web 服务交换二进制数据的常用技术是 base-64。但是,如果目的只是为了记录该值,以便您可以看到确实生成了一个值,那么只记录其描述 是最简单的。

关于ios - NSMutableData 到 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522691/

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