ShakingAlertView 是一个 UIAlertView 子类,具有密码输入文本字段。错误的密码输入会导致类似于 OS X 账户登录屏幕的“摇动”动画。
将 "src" 文件夹拖入您的项目。它包含所需的 UI 组件和密码散列密码的加密助手。
像 UIAlertView 一样使用 ShakingAlertView。要检查明文密码
ShakingAlertView *shakingAlert = nil;
shakingAlert = [[ShakingAlertView alloc] initWithAlertTitle:@"Enter Password"
checkForPassword:@"pass"];
[shakingAlert setOnCorrectPassword:^{
// Code to execute on correct password entry
}];
[shakingAlert setOnDismissalWithoutPassword:^{
// Code to execute on alert dismissal without password entry
}];
[shakingAlert show];
而不是使用代理,传递一个完成块来执行正确的密码输入和警报取消的实例。ShakingAlertView 使用 ARC,因此不需要释放您的实例。
ShakingAlertView 使用 Common Crypto C API 将输入的文本散列到 SHA1 或 MD5。因此,如果您只知道密码字符串的散列副本,则可以在此构造函数中指定它以及散列算法类型。
ShakingAlertView *shakingAlert = nil;
shakingAlert = [[ShakingAlertView alloc] initWithAlertTitle:@"Enter Password"
checkForPassword:@"W6ph5Mm5Pz8GgiULbPgzG37mj9g=" //sha1 hash of 'password'
usingHashingTechnique:HashTechniqueSHA1];
要使用的散列算法由一个枚举定义并传递给构造函数。
typedef enum {
HashTechniqueNone,
HashTechniqueSHA1,
HashTechniqueMD5
} HashTechnique;
HashTechniqueNone
用于未指定技术,例如在 initWithAlertTitle:checkForPassword
和 initWithAlertTitle:checkForPassword:onCorrectPassword:onDismissalWithoutPassword
构造函数中。在这里,使用简单的 isEqualToString:
评估将输入的字符串与指定的明文密码进行比较。
ShakingAlertView 类使用 BDD 工具 Kiwi 进行测试。要运行测试,请通过 Cocoapods 安装 Kiwi,然后打开工作区
cd Example\ Project/
pod install
open ExampleProject.xcworkspace/
确保已选择 "ShakingAlertView" 方案,然后使用 ⌘+U 运行测试
NSData+Base64.h/m
和 b64.h/m
来自 aqtoolkit,由 Jim Dovey
Kiwi 测试工具。
此代码根据 MIT 许可证的条款和条件分发。
版权所有 (c) 2012 Luke Stringer
在此,任何人获得此软件及相关文档副本(“软件”),被允许免费在此软件中自由操作,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供给软件的人进行此类操作,但须遵循以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他理由,这些索赔、损害或其他责任源于、源于或与软件或软件的使用或其他使用有关。
关注我的twitter: lukestringer90