Swift調用sha1算法
在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></pre>就像這樣:
![]()
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文件作為橋接頭文件。
![]()
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