zoukankan      html  css  js  c++  java
  • iOS 使用GBK编码的hmacMD5算法

    该方法是写在工具类中的,而不是写在NSString的类别中

    方法的声明:

    /**

     *  使用hmac-md5加密

     *

     *  @param clearText 原文

     *  @param secret    秘钥

     *

     *  @return 密文

     */

    + (NSString *)getHmacmd5:(NSString *)clearText withSecret:(NSString *)secret;

    方法的实现:

    //密码进行hmac-md5加密

    + (NSString *)getHmacmd5:(NSString *)clearText withSecret:(NSString *)secret{

        

        CCHmacContext ctx;

        //使用GBK编码

        unsigned long encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

        const char *key = [secret cStringUsingEncoding:encode];

        

        const char *str = [clearText cStringUsingEncoding:encode];

        

        unsigned char mac[CC_MD5_DIGEST_LENGTH];

        

        char hexmac[2 * CC_MD5_DIGEST_LENGTH + 1];

        char *p;

        

        CCHmacInit(&ctx, kCCHmacAlgMD5, key, strlen(key));

        CCHmacUpdate(&ctx, str, strlen(str));

        CCHmacFinal(&ctx, mac);

        p = hexmac;

        for (int i = 0; i < CC_MD5_DIGEST_LENGTH;i++) {

            snprintf(p,3,"%02x", mac[ i ]);

            p += 2;

        }

        

        return [NSString stringWithCString:hexmac encoding:encode];  

    }

  • 相关阅读:
    python基本数据类型之字符串(二)
    python基本数据类型之字符串(一)
    Java基础之Java简介
    1024lab-How to run project using .ipynb
    pytorch调试工具
    关于深度学习选择和使用GPU
    中文文本预处理
    GCN相关
    Bert project Debug记录
    图卷积相关的参考
  • 原文地址:https://www.cnblogs.com/funny11/p/5580861.html
Copyright © 2011-2022 走看看