gpt4 book ai didi

ios - 试图理解 RNCryptor

转载 作者:行者123 更新时间:2023-11-29 11:52:05 24 4
gpt4 key购买 nike

我正在处理一个项目,我们需要加密一些用户凭据(用户名、密码、用户 ID 等)以传递到我们的服务器。我们决定使用 AES256 来实现这一点。在对这个主题进行一些研究时,很难避免注意到那里的一个项目,RNCryptor,它声称是一个易于使用的解决这个问题的方法。

所以我将该框架纳入了我的项目,并很快意识到它并不像我想象的那么简单。我希望找到一个解决方案来加密我的凭据字符串,只需 - (1) 派生一个 key ,我想用它来加密我的字符串凭据,(2 ) 将 key 和我的字符串传递到适当的 RNCryptor 方法中,(3) 从所述方法中检索我的加密字符串。

然而,这太好了,令人难以置信。

RNCryptor 的现实是它有这样的方法:

[RNEncryptor encryptData:someData 
withSettings:kRNCryptorAES256Settings
password:someString
error:&someError];

由于术语的原因,这令人困惑。

什么是密码?

这从来没有解释过。什么密码?这是我要加密的用户密码、我要加密的密码 key 还是登录我的计算机的密码(讽刺)。

加密数据?

这是我要加密的用户凭据的 UTF8 编码字符串吗?这是我最好的猜测,但同样,RNCryptor Github“文档”中没有解释。

最佳答案

password 用于生成加密 key ,它是一个用于加密数据的 NSStringencryptData 是要加密的数据,是一个NSData

加密适用于数据,即 8 位字节的数组。您需要将所有内容转换为 NSData。对于 NSString 有以下方法:

NSData *dataToBeEncrypted = [myString dataUsingEncoding:NSUTF8StringEncoding];

NSString *myString = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];

此外,它还需要一个加密 key ,RNCryptor 接受一个 NSString 并从中派生出一个加密 key 。

当然有选项,虽然其中大部分由 RNCryptor 内部处理,但仍有一些可供使用它的开发人员使用。

有两个主要版本有更多选项,您可能最好使用密码版本。

获取一个 NSString 密码:

+ (NSData *)encryptData:(NSData *)data withSettings:(RNCryptorSettings)settings password:(NSString *)password error:(NSError **)error;

第二次获取 NSData 加密 key 以及 NSData 身份验证 key 。

+ (NSData *)encryptData:(NSData *)data withSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey HMACKey:(NSData *)HMACKey error:(NSError **)error;

RNCryptor is you best choice, it handles key derivation from a password, a random IV, authentication of the encrypted data and padding.

关于ios - 试图理解 RNCryptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685174/

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