博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift调用sha1算法
阅读量:5734 次
发布时间:2019-06-18

本文共 1354 字,大约阅读时间需要 4 分钟。

hot3.png

在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 
就像这样:

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,即可开始使用!

参考资料

tips:

本文由导入,原文链接:

由于OSChina的OpenAPI在处理content参数时会自动过滤img标签,所以无法显示图片,

转载于:https://my.oschina.net/lijialong/blog/476784

你可能感兴趣的文章
thymeleaf 学习笔记-基础篇
查看>>
分享话题列表
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
Windows Server 2003下cwRsyncServer服务端与cwRsync客户端数据
查看>>
iOS 打包上传没有用到日历,但是提示需要在info.plist文件中加入NSCalendarsUsageDescription...
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Oracle树形结构的sql语句
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS LVM 新加硬盘,扩容逻辑卷步骤
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
#51CTO学院四周年# 相约烤鸭”
查看>>
F#初学笔记06
查看>>