Swift調用sha1算法

jopen 9年前發布 | 17K 次閱讀 Swift Apple Swift開發

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

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

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

標準實現步驟

1、新建一個Objective-C  m文件

Swift調用sha1算法

2、點擊Next,輸入文件名(這個文件后面可以刪掉),選擇保存位置,默認直接確定即可,保存在當前項目目錄,然后Xcode會自動提示我們是否要創建橋接文件:

Swift調用sha1算法

3、yes后,xode自動為我們創建了一個swift和OC橋接的文件:項目名-Bridging-Header.h

Swift調用sha1算法

在這里,我們可以把test.m文件刪除,調用sha1用不到自己在m中實現什么。

4、在Bridging-Header.h文件中輸入:

// Swift中使用sha1算法  引入這個庫

import <CommonCrypto/CommonCrypto.h></pre>就像這樣:

Swift調用sha1算法

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.text
password = password.sha1()
從一個輸入框中獲得用戶輸入的密碼,然后直接調用sha1方法,即可得到該密碼的sha1值。

非常的方便哦。

處女座手動實現步驟

1、在標準步驟中,我們是通過新建m文件,然后Xcode自動提示為我們創建一個橋接頭文件的,這里我們可以忽略這一步,直接創建一個h文件,手動將這個h文件作為橋接頭文件。

Swift調用sha1算法

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

Swift調用sha1算法

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!