Hash 提供了一种便捷的方式,可将 Swift Data 或 String 格式的消息转换为消息摘要(哈希)或使用以下哈希函数生成 HMAC:MD2 MD4、MD5、SHA-1、SHA224、SHA-256、SHA-384 或 SHA-512。此外,还支持使用 AES-128、AES-192 或 AES-256 进行加密和解密。
特性
- 轻量级且易于使用的界面。
- 支持以下流行的哈希算法:MD2 MD4、MD5、SHA-1、SHA224、SHA-256、SHA-384 或 SHA-512。
- 支持以下流行的 HMAC 生成算法:MD5、SHA-1、SHA224、SHA-256、SHA-384 或 SHA-512。
- 支持使用 AES-128、AES-192 或 AES-256 进行加密和解密。
- 兼容 iOS 8.0 及以上版本。
安装
Cocoapods
CocoaPods 是一个依赖项管理器,它将依赖项集成到 Xcode 工作区中。要使用 Ruby gems 安装它,运行
gem install cocoapods
要使用 Cocoapods 安装 Hash,只需将以下行添加到 Podfile
pod "Hash"
然后运行以下命令
pod install
更多详细信息请见 这里。
Carthage
Carthage 是一个依赖管理器,它为您的项目生成二进制文件以便手动集成。您可以通过以下命令使用 Homebrew 安装:
brew update
brew install carthage
为了通过 Carthage 将 Hash 集成到您的项目中,请将以下行添加到您项目的 Cartfile 中:
github "rwbutler/Hash"
在 macOS 终端中运行 carthage update --platform iOS
来构建框架,然后将 Hash.framework
拖入您的 Xcode 项目。
更多信息请参考 这里。
Swift 包管理器
Swift 包管理器是 Swift 模块的依赖管理器,自 Swift 3.0 起作为构建系统的一部分提供。它用于自动下载、编译和链接依赖项。
要在 Swift 包中包含 Hash 作为依赖项,如下所示将其添加到您的 Package.swift
文件中的 dependencies
条目中:
dependencies: [
.package(url: "https://github.com/rwbutler/Hash.git", from: "1.0.0")
]
用法
有关如何使用 Hash 的示例,请参阅 示例 目录中的示例应用程序。
消息摘要(哈希)
if let hash = Hash(message: "Hello World!", algorithm: .sha256) {
print(hash)
}
打印
7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069
HMACs
if let hash = HMAC(message: "Hello World!", key: "123", algorithm: .sha1) {
print(hash)
}
打印
5471001127ed5f6261576c66033d9cbe37c7c91e
加密
当前支持的加密算法包括:AES-128、AES-192和AES-256。
if let cipherText = CipherText(message: "Hello World!", key: "01234567890123450123456789012345", iv: "0123456789012345", algorithm: .aes256) {
print(cipherText)
}
打印
6a790fe6c15590a6434d3ee3a866d327
解密
当前支持的解密算法包括:AES-128、AES-192和AES-256。
if let cipherText = Data(hex: "6a790fe6c15590a6434d3ee3a866d327"),
let keyData = "01234567890123450123456789012345".data(using: .utf8) {
let plainText = PlainText(message: message, key: keyData, iv: "0123456789012345".data(using: .utf8), algorithm: .aes256)
print(plainText)
}
打印
Hello World!
作者
许可协议
哈希值遵循MIT许可协议。更多信息请参阅LICENSE文件。
附加软件
控制
- AnimatedGradientView - 为iOS制作简单的强大渐变动画。
AnimatedGradientView |
---|
![]() |
框架
- Gecheats - 现代iOS应用的复古作弊码。
- Connectivity - 在iOS应用程序中改进Reachability以确定网络连接性。
- FeatureFlags - 允许开发者为功能标志配置,通过捆绑的/远程托管JSON配置文件运行多个A/B或MVT测试。
- FlexibleRowHeightGridLayout - 一个设计用于支持动态字体的UICollectionView网格布局,允许每个行的长度根据内容进行调整。
- Hash - 使用流行的散列函数,包括MD5、SHA-1、SHA-256,生成消息摘要和HMAC的轻量级手段。
- Skylark - 使用Gherkin语法的完全Swift BDD测试框架来编写Cucumber场景。
- TailorSwift - Swift核心库/基础框架扩展的集合。
- TypographyKit - 支持动态字体,提供iOS上一致的易访问视觉样式。
- Updates - 自动检测应用更新,并温柔地提示用户更新。
Gecheats | Connectivity | FeatureFlags | Skylark | TypographyKit | Updates |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
工具
- Clear DerivedData - 通过在终端中输入
cdd
,快速清除您的DerivedData目录的实用工具。 - Config Validator - 在CI流程中将您的配置文件验证和上传,同时清除您的CDN缓存。
- IPA Uploader - 将您的应用上传到TestFlight和App Store。
- 调色板 - 使您的TypographyKit颜色调色板在Xcode界面构建师中可用。
Config Validator | IPA Uploader | 调色板 |
---|---|---|
![]() |
![]() |
![]() |