相关疑难解决方法(0)

MD5输入/输出的最大长度

md5散列的字符串的最大长度是多少?或者:如果它没有限制,如果是,那么md5输出值的最大长度是多少?

md5 hash-function

155
推荐指数
6
解决办法
19万
查看次数

如何转换/使用CC_SHA1方法,以便它可以在64位系统中使用

我正在转换我的应用程序在64位系统上工作,我一直试图正确使用内置CC_SHA1方法.

我收到警告:

隐式转换失去整数精度:"NSUInteger"(又名"无符号长")为"CC_LONG"(又名"无符号整型")

当试图传递:data.lengthCC_SHA1方法中.

data.lengthNSUInteger

CC_SHA1 方法定义是:

extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md)
Run Code Online (Sandbox Code Playgroud)

哪里CC_LONG是32位unsigned integer.

如何更改才能使用 CC_LONG64

typedef uint64_t CC_LONG64;
Run Code Online (Sandbox Code Playgroud)

这是我得到上述警告的转换方法:

+(NSString*)sha1:(NSString*)input
{
    const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *data = [NSData dataWithBytes:cstr length:input.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(data.bytes, data.length, digest);

    NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];

    for(NSInteger i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];

    return output;

}
Run Code Online (Sandbox Code Playgroud)

iphone 64-bit objective-c ios

9
推荐指数
1
解决办法
3152
查看次数

标签 统计

64-bit ×1

hash-function ×1

ios ×1

iphone ×1

md5 ×1

objective-c ×1