Swift調用sha1演算法

來源:互聯網
上載者:User

標籤:

在Swift中通過調用OC的CommonCrypto庫可以很方便的實現String字串轉換為sha1。

在一個swift項目中,需要使用橋接標頭檔(Bridging header)的方式來引入一個OC庫,才能調用OC中的內容。

本文也將作為Swift項目中如何調用Objective-C代碼的一個介紹。

標準實現步驟

1、建立一個Objective-C  m檔案

2、點擊Next,輸入檔案名稱(這個檔案後面可以刪掉),選擇儲存位置,預設直接確定即可,儲存在當前項目目錄,然後Xcode會自動提示我們是否要建立橋接檔案:

3、yes後,xode自動為我們建立了一個swift和OC橋接的檔案:項目名-Bridging-Header.h

在這裡,我們可以把test.m檔案刪除,調用sha1用不到自己在m中實現什麼。

4、在Bridging-Header.h檔案中輸入:

// Swift中使用sha1演算法  引入這個庫#import <CommonCrypto/CommonCrypto.h>
就像這樣:

5、在您的項目中(比如在一個swift檔案中)寫上一個String類的擴充(extension),代碼如下:

extension String {    func sha1() -> String {        let data = self.dataUsingEncoding(NSUTF8StringEncoding)!        var digest = [UInt8](count:Int(CC_SHA1_DIGEST_LENGTH), repeatedValue: 0)        CC_SHA1(data.bytes, CC_LONG(data.length), &digest)        let hexBytes = map(digest) { String(format: "%02hhx", $0) }        return "".join(hexBytes)    }}
6、開始使用啦,代碼:
var password = txtPasswd.textpassword = password.sha1()
從一個輸入框中獲得使用者輸入的密碼,然後直接調用sha1方法,即可得到該密碼的sha1值。

非常的方便哦。

處女座手動實現步驟

1、在標準步驟中,我們是通過建立m檔案,然後Xcode自動提示為我們建立一個橋接標頭檔的,這裡我們可以忽略這一步,直接建立一個h檔案,手動將這個h檔案作為橋接標頭檔。

2、選擇項目根節點,在右邊的配置中選擇【Build Settings】,然後在下面找到【Swift Compiler】節點,選擇【Objective-C Bridging Header】項,雙擊輸入剛才建立的h檔案的路徑:

3、現在,和標準步驟中一樣,在Header.h檔案中引入CommonCrypto庫,建立String類的extension,即可開始使用!

參考資料

http://stackoverflow.com/questions/25761344/how-to-crypt-string-to-sha1-with-swift

tips:

本文由wp2osc匯入,原文連結:http://devonios.com/swift-sha1.html

由於OSChina的OpenAPI在處理content參數時會自動過濾img標籤,所以無法顯示圖片,詳見

Swift調用sha1演算法

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.