登录regestarion密码和确认密码验证&在iPhone验证

时间:2012-08-14 11:49:17

标签: iphone ios5 sqlite

我是iPhone编程的新手。我正在开发一个应用程序。我的要求是

在我的第一个视图中,我将输入密码并确认密码插入sqlite。然后将执行验证。之后,如果密码匹配,那么将推送下一个视图。我需要确认密码应保存在sqlite中以供下次验证。

如果我在验证后关闭我的应用程序,那么如果我将构建并再次运行我的应用程序。现在不应该打开密码验证窗口。

只有一个视图会询问密码,如果当前密码等于终止应用程序密码之前,则应用程序的成功视图将打开。现在,验证应该与当前密码进行比较,并确认密码值[即旧密码,在终止我的应用程序之前存储]。

可以这样做吗? 请帮帮我

感谢。

我做了这么多

-(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);



}

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要保存密码,一旦输入正确,以备日后使用。

首先,我不会使用sqlite来保存密码。标准方法是使用钥匙串。看一下这个Keychain example。您可以使用其中一个many wrappers来简化生活。

更简单但更不安全的方法是使用NSUserDefaults,我强烈反对你。

拥有密码和保存的密码,您只需要进行比较。

额外提示:在数据库中保存密码时,请勿将密码保存为纯文本。保存密码的哈希值(您可以使用SHA2之类的东西),然后,当用户输入密码时,您可以将密码哈希值与保存的密码进行比较。

答案 1 :(得分:-1)

您使用'NSUserDefault and save password in 'NSUserDefault,如果您关闭应用并运行第二次应用,则会看到'NSUserDefault value if it exist then go on second view and second condition if you logout the app then you delete the 'NSUserDefault,下次运行应用时,'NSUserDefault`不存在,那么您问用于密码