SecurityService - 以加密/解密和散列数据的方式
SecurityService
你总是在尝试实现密码学时遇到麻烦吗?不要担心了!在这个框架中,我在最受欢迎的密码学框架 CryptoSwift 之上创建了一个包装器。
为什么?因为我只想在许多项目中重复这种设置,所以我创建了 SecurityService
。
设置
CocoaPods
如果你在用 CocoaPods,请在 Podfile 中添加它,并运行 pod install
。
target 'Your target name' do
pod 'SecurityService', '~> 1.0'
end
手动安装
如果您想在项目中手动添加,而不使用包管理器,只需将“Classes
”文件夹中的所有文件复制到您的项目中。
使用方法
创建服务
要创建服务的实例,您只需导入框架并实例化SecurityService
即可。
import SecurityService
let service = SecurityService()
如果您想进行特定配置,可以创建它如下所示
import KeyValueStorage
import SecurityService
service = SecurityService(storage: KeyValueStorage(),
cipherKey: "keykeykeykeykeyk",
cipherIv: "drowssapdrowssap",
hashSalt: "nacllcan",
hashIterations: 4096,
hashKeyLength: 32,
hashVariant: .sha256)
加密/解密
使用SecurityService
,加密和解密Data
非常简单,它使用AES-GCM
算法,只需像这样调用即可
let source = "some string"
let data = source.data(using: .utf8)!
let encrypted = service.encrypt(data: data)
let decrypted = service.decrypt(data: encrypted!)
let result = String(data: decrypted!, encoding: .utf8)
散列密码
您还可以使用PBKDF2
算法散列密码,以保护用户数据。
let password = "something"
let hashPassword = service.hash(password: password)
加密通知
本发行版包含加密软件。您目前居住的国家可能对加密软件的进口、持有、使用以及/或向其他国家重新出口有规定。在使用任何加密软件之前,请检查您所在国家有关加密软件进口、持有或使用,以及重新出口的法律、法规和政策,以了解是否允许使用。有关更多信息,请参阅http://www.wassenaar.org/。
👍
感谢这个框架的创建离不开这些令人敬仰的人
- CryptoSwift: https://github.com/krzyzanowskim/CryptoSwift
- Gray Company: https://www.graycompany.com.br/
- Swift by Sundell: https://www.swiftbysundell.com/
- Hacking with Swift: https://www.hackingwithswift.com/
- Ricardo Rauber: http://ricardorauber.com/
欢迎反馈
如果您注意到任何问题,遇到了困难,或者只是想聊天,请自由地创建一个问题。我们将很高兴为您提供帮助。
许可证
SecurityService在MIT许可证下发布。