Objective-C Implicit conversion loses integer precision (size_t to CC_Long)

后端 未结 3 604
野趣味
野趣味 2021-02-12 08:11

I have a function that\'s generating a sha256 encryption of a string,

Here\'s the function:

    -(NSString*)sha256HashFor:(NSString*)input
{
    const ch         


        
3条回答
  •  后悔当初
    2021-02-12 09:00

    Speaking from the iOS perspective, the fact that CC_LONG (a.k.a. uint32_t) and size_t (unsigned long) are incompatible sizes can be a security/stability concern in some applications, especially when dealing with reusable library functions.

    An MD5 hash is a 128 bit hash of a potentially unlimited length message, so there is a good reason for this warning. If you truncate a length greater than 2^32, you will come up with an incorrect hash.

    Your code should logically decide on how large of a string it can support. In this case using CC_MD5, it would have to be 2^32 bytes.

    Maximum length for MD5 input/output

提交回复
热议问题