iOS7获取UUID以及转换MD5

Posted lxjshuju

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS7获取UUID以及转换MD5相关的知识,希望对你有一定的参考价值。

          近期项目开发,运用到要获取UUID转MD5,可是ios7不能使用获取的UDID的接口(涉及到隐私),获取MAC地址的方式的接口在iOS7下也废弃了.眼下可能的就是获取UUID了,可是在iOS7下,UUID一个不好的地方是每次调用一次,生成的就不一样,这个会导致一旦APP卸载重装,UUID就变了.

        以下,介绍一种比較方便的方法,来解决这一问题:

         1.导入Security.framework

         2.在github上http://github.com/soffes/sskeychain下载SSKeychain开源库,引入SSKeychain目录到你的project

         

- (NSString *)getIOSUUID
{
    NSString *retrieveuuid = [SSKeychain passwordForService:@"com.mohe.userinfo"account:@"uuid"];
    
    if ( retrieveuuid == nil || [retrieveuuid isEqualToString:@""]){
        CFUUIDRef uuid = CFUUIDCreate(NULL);
        assert(uuid != NULL);
        CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);
        
        retrieveuuid = [NSString stringWithFormat:@"%@", uuidStr];
        
        [SSKeychain setPassword:retrieveuuid forService:@"com.mohe.userinfo"account:@"uuid"];
    }
    return retrieveuuid;
}

@转换MD5格式的话能够写个类目:

#import "NSString+MD5.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (MD5)
- (NSString *)md5HexDigest
{
    const char *original_str = [self UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(original_str, (int)strlen(original_str), result);
    NSMutableString *hash = [NSMutableString string];
    for (int i = 0; i < 16; i++)
        [hash appendFormat:@"%02X", result[i]];
    return [hash lowercaseString];
}
@end



@測试后发现,uuid在删除后仍会改变,后面百度了这个博客,大家能够參考:

http://www.cnblogs.com/smileEvday/p/UDID.html

以上是关于iOS7获取UUID以及转换MD5的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7-iBeacon:当应用程序关闭时,如何从 iBeacon 获取比其 UUID 更多的数据?

Django生成唯一字符串UUID与MD5

如何在 iOS 7 中使用 iBeacons 获取设备详细信息,如 UUID 或设备名称

Android:获取蓝牙设备的uuid

Python uuid模块

一旦单击带有 in 片段的回收器列表项,如何将片段意向活动,以及如何获取回收器项目值?