IOS 3DES在迅速

问题描述:

我设法通过桥接头导入CommonCryptor.h,IOS 3DES在迅速

#import <CommonCrypto/CommonCryptor.h> 

然而,当我试图加密文本使用CCCrypt方法(参考对象的C的方式),我有一个编译错误。

'Int'不能转换为CCOperation。

var key:String = "wKNvJ4NuyW"; 

    func encrypt(text: String) ->String{ 


     var result:CCCryptorStatus = CCCrypt(
      kCCEncrypt, //Error here!!! it says 'Int' is not convertible to CCOperation. 
      kCCAlgorithm3DES, 
      kCCOptionPKCS7Padding | kCCOptionECBMode, 
      key, 
      kCCKeySize3DES, 
      nil, 
      .... 
    } 

有谁告诉我怎么解决这个问题呢?为什么它在object-c中不起作用?

谢谢。

+0

嗨,你可以分享你用于该整个算法中?我遇到了问题,并找不到解决方案 - http://stackoverflow.com/questions/28459736/ios-3des-with-ecb-return-half-correct-data – 2015-02-11 17:56:48

您必须将参数转换为预期的类型。例如,kCCEncryptInt,但第一个参数的类型为CCOperation,这是UInt32的别名。 相反(Objective-)C,斯威夫特不隐式转换类型:

var result = CCCrypt(
    CCOperation(kCCEncrypt), 
    CCAlgorithm(kCCAlgorithm3DES), 
    CCOptions(kCCOptionPKCS7Padding | kCCOptionECBMode), 
    key, 
    UInt(kCCKeySize3DES), 
    ... 
+0

就是这样!谢谢。 – 2014-11-06 14:44:35