RSNumberPad
RSNumberPad 是一个提供随机数字键盘的库,用于 iOS 应用程序。
通过为用户提供随机变化的数字键盘,该库提高了密码输入时的安全性。该库还支持暗色模式和横屏模式,并且当键盘覆盖文本字段时自动提升视图,使用户能够看到文本字段的视觉表示。
示例
浅色模式 | 暗色模式 |
---|---|
![]() |
![]() |
横屏模式(浅色) | 横屏模式(暗色) |
---|---|
![]() |
![]() |
安装
-
使用 CocoaPods:
pod 'RSNumberPad'
-
import PackageDescription let package = Package( name: "AppName", dependencies: [ .Package(url: "https://github.com/devxsby/RSNumberPad", .upToNextMajor(from: "1.3.0")), ] )
需求
- iOS 13.0+
使用
1. 键盘设置
创建 RSNumberPad 的实例并将其放置在所需位置。添加到视图时,键盘将自动配置。
2. 密码存储
使用 savePassword(key: String, password: String)
方法对用户输入的密码进行哈希存储。此方法使用键将密码安全地存储在密钥链中。
3. 密码验证
使用 checkPassword(key: String, password: String)
方法验证用户输入的密码。此方法使用键从密钥链中检索密码并与用户输入的密码进行比较。
关键特性
1. 随机数字键盘
每次用户调用键盘时,数字的位置都会随机改变。这使得预测用户的密码输入模式变得困难。
2. 密码哈希和存储
用户输入的密码使用SALT算法结合UUID进行哈希,并在iOS密钥链中安全存储此哈希值。
3. 密码验证
将用户输入的密码进行哈希,并将其与密钥链中存储的值进行比较。这验证了密码的准确性。
4. 支持暗黑模式
RSNumberPad完全支持iOS的深色模式。当启用深色模式时,键盘的主题将自动切换为深色。
5. 旋转模式(横屏模式)支持
RSNumberPad完全支持横屏模式。当设备旋转到横屏方向时,键盘视图将自动调整到横屏模式。
6. 防止键盘遮挡
如果键盘覆盖了文本域,视图将自动升起以允许用户看到文本域。
7. 通过防止粘贴增强安全性
为了提高安全性,RSNumberPad禁用了文本域内的复制和粘贴功能。这使得用户无法将已经复制的内容粘贴到文本域中,进一步保障数据输入的安全。
8. 通过关闭键盘改进可用性
除了“完成”按钮之外,RSNumberPad还通过允许用户在文本域外部点击来关闭键盘,以提高可用性。此功能为用户提供了一种更直观的方式来控制键盘的可视性。
除此之外,这个库应用了MVVM架构来分离视图和模型,允许根据需要自由定制按键视图。因此,计划更新以控制每个按钮(数字、删除、随机)的状态或更改键盘的形状、大小等。
作者
devxsby,[email protected]
许可证
RSNumberPad采用MIT许可证。更多信息请参阅LICENSE文件。