在纯 Swift (Vapor) 项目中拥有 HMAC SHA256
Posted
技术标签:
【中文标题】在纯 Swift (Vapor) 项目中拥有 HMAC SHA256【英文标题】:have HMAC SHA256 in pure Swift (Vapor) project 【发布时间】:2016-09-01 20:34:39 【问题描述】:我是基于 Swift 的 Vapor 后端框架的新手,我刚刚设置了 HelloWorld 项目。
我需要使用 HMAC SHA256 算法来加密数据。我在网上搜索,找到something like this,但都是基于ios或OSX框架,使用C库,可以通过import <CommonCrypto/CommonHMAC.h>
添加。
如何将 CommonCrypto 或 HMAC 添加到我的 Vapor 项目中?如果不可能,我怎么能有一个纯 swift HMAC Sha256 算法?有没有我可以添加到 Package.swift 的依赖项?
【问题讨论】:
你找到解决办法了吗? 【参考方案1】:如果您使用的是 Vapor 0.17 或更高版本,您应该可以使用 import HMAC
和 import SHA2
从那里您可以使用 HMAC 轻松创建 SHA1 哈希。
查看 Vapor 使用的 Crypto 包:https://github.com/vapor/crypto
此外,Vapor 的默认哈希是带有 HMAC 的 SHA256。所以你可以做drop.hash.make("foo")
,这样就可以了。
【讨论】:
【参考方案2】:您应该能够使用CryptoSwift 项目或至少是其中的代码。
这在 Mac 或 iOS 设备上是一个糟糕的解决方案,因为它没有硬件支持并且比 Apple 的 Common Crypto 慢数百到 1000 倍。但仅在代码中尽可能快。
【讨论】:
【参考方案3】:同意@zaph 的回答,如果您想使用更优化和快速的解决方案,请使用 SPM (https://github.com/Zewo/OpenSSL) 快速导入 OpenSSL,然后使用基于 OpenSSL 的 HMAC api。
参考:https://github.com/yoshiki/HMACHash/blob/master/Sources/HMACHash.swift
【讨论】:
以上是关于在纯 Swift (Vapor) 项目中拥有 HMAC SHA256的主要内容,如果未能解决你的问题,请参考以下文章