在swift项目中调用加密方法(AES、MD5、Base64)

已经在Windows下实现了MD5,AES和Base64加解密算法的一个小软件后,准备在ios上实现这几个算法,其实在OC下这些个算法调用已经不难,无奈我OC只懂个皮毛,对swift已经学习了一段时间,准备用swift实现整个小软件,第一步当然是对这个算法的可行性做个分析,我走的路挺曲折,过程如下:

    首先我想到的是使用开源算法cryptopp,Windows下我就是使用的这个库,所以我第一点想到的就是这个,这个库包含的算法广泛,使用方法我也已经知道,关键是把它引入到项目中。

    经过百度,找到官方的参考资料:http://www.cryptopp.com/wiki/IOS_%28Command_Line%29

    这个资料是OC下的使用,包括编译和使用,我没有编译,直接下载了编译好的库和头文件,加入到swift项目中,包含了库,设置了各个编译选项,编译时提示了好多错误,主要是一些C的头文件找不到,swift使用cryptopp的资料网上基本没有,况且中间隔着OC,不好解决。我看了一遍cryptopp的编译方法,但是找了半天也没找到下面这个命令中的文件,只好放弃了。

unzip -a GNUmakefile-ios.patch.zip

    接下来,我搜了一些ios下的加密方法,发现了IOS自带的库CommonCryptor,我先尝试了其MD5加密,过程并非想象中顺利,第一步的utf8编码就难住了我,swift中String的utf8方法返回的不是一个简单的数组,我无法获取其中的数据,那我换NSString,它的UTF8String方法返回的是UnsafePointer<T>类型,这个类型到C中char*的转换又是一门不浅的课程,中间仍然关乎OC,因此一个简单的CC_MD5方法,又难住了我。

    既然OC下调用加密方法如此方便,swift调用OC静态库的方法我也已经掌握,我为何不用OC把加密方法封装了,生成静态库,然后加入到swift项目使用呢,于是我查了下ios下生成静态库的方法和OC使用CommonCryptor加密的资料,写了一个加密的库(参考:http://blog.csdn.net/z251257144/article/details/8291992),放到swift项目中仍然有些问题,调用库方法就退出,于是我使用OC写了个小测试程序,断点跟踪发现并没有问题,我又用swift写了个小测试程序,直接将头文件和.m文件加入到项目,运行测试,也没有问题,于是我把OC代码直接加到我的swift项目中,运行竟然成功了

    真是万万没想到,竟然用这个最简单明了的方法是可行的。在此记录,仅供参考,读者如有更好的方法,请指点一二,谢谢。


你可能感兴趣的:(MD5,base64,swift,aes,CommonCryptor)