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文件中输入:

1// Swift中使用sha1算法 引入这个库 2#import <CommonCrypto/CommonCrypto.h>

就像这样:

5、在您的项目中(比如在一个swift文件中)写上一个String类的扩展(extension),代码如下:

1extension String { 2 func sha1() -> String { 3 let data = self.dataUsingEncoding(NSUTF8StringEncoding)! 4 var digest = [UInt8](count:Int(CC_SHA1_DIGEST_LENGTH), repeatedValue: 0) 5 CC_SHA1(data.bytes, CC_LONG(data.length), &digest) 6 let hexBytes = map(digest) { String(format: "%02hhx", $0) } 7 return "".join(hexBytes) 8 } 9}

6、开始使用啦,代码:

1var password = txtPasswd.text 2password = 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标签,所以无法显示图片,详见

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用