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];  

    }

  • 相关阅读:
    C
    如何让asp.net mvc 直接运行mobile页面
    Nuget找不到服务器
    C#调用R语言输出图片
    sql列转行
    C#读取注册表
    关于这个博客,关于我
    NOIP 2016 简要题解
    CSP2019 题解
    CF 练死劲
  • 原文地址:https://www.cnblogs.com/funny11/p/5580861.html
Copyright © 2011-2022 走看看