如何在swift中执行HMAC-SHA1

如何在swift中执行HMAC-SHA1,swift,Swift,我基本上是在尝试获取一个字符串,然后在php中执行如下操作: $signature= base64_encode(hash_hmac('sha1', $data, $secretKey, true)); 但是,请在Swift中执行此操作。。。 我看到很多关于其他人尝试使用CommonCrypto的帖子,但该模块似乎没有安装 所以有三个问题: var authString:String = "PUT\nTEST=BLAH\nTEST2=BLAHBLAHBLAH" let

我基本上是在尝试获取一个字符串,然后在php中执行如下操作:

    $signature= base64_encode(hash_hmac('sha1', $data, $secretKey, true));
但是,请在Swift中执行此操作。。。 我看到很多关于其他人尝试使用CommonCrypto的帖子,但该模块似乎没有安装

所以有三个问题:

    var authString:String = "PUT\nTEST=BLAH\nTEST2=BLAHBLAHBLAH"
    let hmacResult:String = authString.sha1()

    ...

    extension String {
        func sha1() -> String {
          //Do Something...
        }
    }
  • CommonCrypto是正确的方法吗
  • 如果是,如何添加框架
  • 如果CommonCrypto不是最好的方法,那是什么
  • 我当前的代码如下所示:

        var authString:String = "PUT\nTEST=BLAH\nTEST2=BLAHBLAHBLAH"
        let hmacResult:String = authString.sha1()
    
        ...
    
        extension String {
            func sha1() -> String {
              //Do Something...
            }
        }
    

    您肯定应该使用CommonCrypto,因为它已经在每台设备上提供,经过良好测试,速度很快。您只需要添加一个包含

    #import <CommonCrypto/CommonCrypto.h>
    
    例如:

    let result = "test".hmac(key: "test")
    
    结果:

    0c94515c15e5095b8a87a50ba0df3bf38ed05fe6
    
    签出此回购协议:


    它还包含一个供参考的演示项目。

    比较或(可能还有更多…)-要使用CommonCrypto,您需要一个桥接头,如下所述:。但我需要使用密钥进行哈希?我该怎么做?这个怎么样:?先生,你是我的救命恩人