20161121

作者: 诸葛云纹 | 来源:发表于2016-11-21 15:27 被阅读176次

CommonCrypto加密解密参数说明

CCCryptorStatus CCCrypt(
    CCOperation op,         /* kCCEncrypt, etc. */
    CCAlgorithm alg,        /* kCCAlgorithmAES128, etc. */
    CCOptions options,      /* kCCOptionPKCS7Padding, etc. */
    const void *key,
    size_t keyLength,
    const void *iv,         /* optional initialization vector */
    const void *dataIn,     /* optional per op and alg */
    size_t dataInLength,
    void *dataOut,          /* data RETURNED here */
    size_t dataOutAvailable,
    size_t *dataOutMoved)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);

参数说明

  • CCOperation op加密kCCEncrypt还是解密kCCDecrypt

  • CCAlgorithm alg加密算法,枚举如下[1]

enum {
    kCCAlgorithmAES128 = 0,
    kCCAlgorithmAES = 0,
    kCCAlgorithmDES,
    kCCAlgorithm3DES,       
    kCCAlgorithmCAST,       
    kCCAlgorithmRC4,
    kCCAlgorithmRC2,   
    kCCAlgorithmBlowfish    
};
typedef uint32_t CCAlgorithm;
  • CCOptions options可以使用|符号,枚举如下
enum {
    /* options for block ciphers */
    kCCOptionPKCS7Padding   = 0x0001,
    kCCOptionECBMode        = 0x0002
    /* stream ciphers currently have no options */
};
typedef uint32_t CCOptions;
  • const void *key加密或解密的钥匙[2]
  • size_t keyLength钥匙的内存长度,请根据加密算法从以下枚举中选择
enum {
    kCCKeySizeAES128          = 16,
    kCCKeySizeAES192          = 24,
    kCCKeySizeAES256          = 32,
    kCCKeySizeDES             = 8,
    kCCKeySize3DES            = 24,
    kCCKeySizeMinCAST         = 5,
    kCCKeySizeMaxCAST         = 16,
    kCCKeySizeMinRC4          = 1,
    kCCKeySizeMaxRC4          = 512,
    kCCKeySizeMinRC2          = 1,
    kCCKeySizeMaxRC2          = 128,
    kCCKeySizeMinBlowfish     = 8,
    kCCKeySizeMaxBlowfish     = 56,
};
  • const void *iv初始化矢量,传NULL即可
  • const void *dataIn需要加密的数据[3]
  • size_t dataInLength加密数据的内存长度[4]
  • void *dataOut数据输出的地址
  • size_t dataOutAvailable为数据输出预留的内存大小
  • size_t *dataOutMoved输出的位移

  1. 注意加密和解密时算法要一致

  2. 请注意类型转化成C类型,笔者使用 UTF8String

  3. 请注意类型转化成C类型,笔者使用 bytes

  4. 内存长度的计算与数据类型有关,请自行百度,这里不做说明

相关文章

  • JavaScript 原型链

    请移步:https://blog.cdswyda.com/post/20161121

  • 20161121

  • 20161121😊

    现在哈尔滨已经零下二十一度,哈哈哈,已经穿上了最厚的棉裤啦,穿着面包鞋还有大棉袄哈哈,戴着帽子口罩,这样就很暖和了。

  • 20161121

    今天下了个Airbnb 以前在微博上看到的那些美好的住宅通过它好像都可以实现去居住一下的体验 佛罗伦萨的树屋啦 带...

  • 20161121

    从噩梦中惊醒,拿起手机一看才2点了。最近总是半夜惊醒,然后反思自己,觉得还是自己不够努力,才会这样!说得漂亮,做的...

  • 20161121

    CommonCrypto加密解密参数说明 参数说明 CCOperation op加密kCCEncrypt还是解密k...

  • 小马20161121

    今天雨夹雪,好冷啊! 感恩这个天气让孩子不能去幼儿园,因为昨晚睡得太晚,早上我起不来了,不去幼儿园的宝宝,在床上醒...

  • 20161121作业

    主题词:时间,吃饭,睡觉 你现在拥有的最值钱的是什么?不是钱财,不是权利,而是你的时间。从生下来到去世,去掉不能...

  • 20161121《宝贝》

    今天外婆去看你了,奶奶说一看到外婆,就要外婆抱,没忘记外婆呢。真是好样的,外婆爱你哟 拿着手机,你总是把手机翻到背...

  • 每日晚餐20161121-20161127

    【20161121晚餐】米饭,炒菜花,炒芹菜,拌黄瓜,海鲜冬瓜汤 休息,做完晚饭发现都是绿色! 【20161122...

网友评论

      本文标题:20161121

      本文链接:https://www.haomeiwen.com/subject/rjyupttx.html