我是 iPhone 编程新手。我正在开发一个应用程序。我的要求是
在我的第一个 View 中,我将输入密码并确认密码插入到 sqlite 中。然后将执行验证。之后,如果密码匹配,则将推送下一个 View 。我需要将确认密码保存在 sqlite 中以供下次验证。
如果我在验证后关闭我的应用程序,那么我是否将再次构建并运行我的应用程序。现在不应打开密码验证窗口。
只有一个 View 会简单地询问密码,如果当前密码等于终止应用程序之前的密码,则将打开应用程序的成功 View 。现在,这里的验证应该与当前密码和确认密码值进行比较[即旧密码,在终止我的应用程序之前存储]。
可以这样做吗? 请帮助我
谢谢。
我做了这么多
-(void)insertDatapsw:(NSString *)password:(NSString *)confirmpsw
{
//[self createEditableCopyOfDatabaseIfNeeded];
sqlite3_stmt *insertStatement = nil;
NSString *sql;
int returnvalue;
sql = [NSString stringWithFormat:@"insert into LogInPsw(ConfirmPsw) values (?)"];
returnvalue = sqlite3_prepare_v2(database, [sql UTF8String], -1, &insertStatement, NULL);
if (returnvalue == SQLITE_DONE)
{
NSAssert1 (0,@"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
}
//sqlite3_bind_text(insertStatement, 1,[strPasswd UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insertStatement, 1,[strConfirmPsw UTF8String], -1, SQLITE_TRANSIENT);
if (SQLITE_DONE!= sqlite3_step(insertStatement))
{
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
else
sqlite3_reset(insertStatement);
sqlite3_finalize(insertStatement);
}
最佳答案
如果我理解正确的话,您希望在正确输入密码后保存密码,以供以后使用。
首先,我不会使用sqlite来保存密码。标准方法是使用钥匙串(keychain)。看看这个Keychain example 。您可以使用 many wrappers 之一让生活更轻松。
更简单但更不安全的方法是使用 NSUserDefaults ,我强烈建议您不要这么做。
有了密码和保存的密码,您所要做的就是进行比较。
额外提示:将密码保存在数据库中时,请勿将密码保存为纯文本。保存密码的哈希值(您可以使用类似 SHA2 ),然后,当用户输入密码时,您可以将密码哈希值与保存的密码哈希值进行比较。
关于iphone - 登录注册密码并在 iPhone 中确认密码验证和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951637/