1

我是基于 Swift 的Vapor后端框架的新手,我只是设置了 HelloWorld 项目。

我需要使用HMAC SHA256算法来加密数据。我在网上搜索,发现类似这样的东西,但它们都是基于 iOS 或 OSX 框架,使用 C 库,可以通过import <CommonCrypto/CommonHMAC.h>.

如何将 CommonCrypto 或 HMAC 添加到我的 Vapor 项目中?如果不可能,我怎么能有一个纯 swift HMAC Sha256 算法?有没有我可以添加到Package.swift的依赖项?

4

3 回答 3

4

如果您使用的是 Vapor 0.17 或更高版本,您应该能够做到import HMAC并且import SHA2

从那里您可以使用 HMAC 轻松创建 SHA1 哈希。

查看 Vapor 使用的 Crypto 包:https ://github.com/vapor/crypto

此外,Vapor 的默认散列器是带有 HMAC 的 SHA256。所以你可以这样做drop.hash.make("foo"),这会奏效。

于 2016-09-08T16:55:57.737 回答
1

您应该能够访问CryptoSwift项目,或者至少能够访问其中的代码。

这在 Mac 或 iOS 设备上是一个糟糕的解决方案,因为它没有硬件支持,并且比 Apple 的 Common Crypto 慢数百到 1000 倍。但仅在代码中尽可能快。

于 2016-09-01T21:12:14.887 回答
0

同意@zaph 的回答,如果您想使用更优化和快速的解决方案,请使用 SPM ( https://github.com/Zewo/OpenSSL ) 快速导入 OpenSSL,然后使用基于 OpenSSL 的 HMAC api。

参考:https ://github.com/yoshiki/HMACHash/blob/master/Sources/HMACHash.swift

于 2016-09-02T17:57:04.417 回答