首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RNCryptor密码加密

RNCryptor密码加密
EN

Stack Overflow用户
提问于 2014-03-02 15:41:04
回答 1查看 3.2K关注 0票数 1

我正在使用以下代码作为示例。如果我错了,请帮帮我。

代码语言:javascript
运行
复制
- (void)storeToKeychain {

kPassword = [self computeSHA256DigestForString:[NSString stringWithFormat:@"%@%i%@", [username stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], pinHash, SALT_HASH];


NSData *data = [@"Data" dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data
                                withSettings:kRNCryptorAES256Settings
                                      password:kPassword
                                         error:&error];
}

- (NSString*)computeSHA256DigestForString:(NSString*)input {

const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];
uint8_t digest[CC_SHA256_DIGEST_LENGTH];

// This is an iOS5-specific method.
// It takes in the data, how much data, and then output format, which in this case is an int array.
CC_SHA256(data.bytes, data.length, digest);

// Setup our Objective-C output.
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2];

// Parse through the CC_SHA256 results (stored inside of digest[]).
for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) {
    [output appendFormat:@"%02x", digest[i]];
}

return output;
}

我的应用程序有一个设置和登录页面。每当用户创建帐户时,我希望将密码存储在密钥链中进行加密,为了增加安全性,我可能应该使用用户名。因此,当用户创建帐户时,我想使用RNCryptor来加密用户在密钥链中的用户名和密码。

我不确定在RNEcryptor方法中为kPassword使用什么密码。我最初考虑使用由UUID, username and a random 40 character salt hash组成的SHA256散列将密码加密到密钥链中。后来我找到了RNCryptor,我想知道是否可以使用SHA256 hash作为kPassword,或者是否有其他选择?

EN

回答 1

Stack Overflow用户

发布于 2015-02-04 14:14:49

尝尝这个

https://github.com/Gurpartap/AESCrypt-ObjC添加AESCrypt-ObjC-master

现在将这些添加到顶部

代码语言:javascript
运行
复制
#import "AESCrypt.h"

然后添加这些

代码语言:javascript
运行
复制
NSString *message = @"yourStringtobeencrypted";
NSString *password = @"yourpassword";
NSString *encryptedData = [AESCrypt encrypt:message password:password];

这就对了..用于解密

代码语言:javascript
运行
复制
NSString *message1 = [AESCrypt decrypt:encryptedData password:password];

:-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22125118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档