美文网首页
iOS:MD5加密

iOS:MD5加密

作者: 学游泳的小黑 | 来源:发表于2017-01-19 17:06 被阅读37次

使用Swift的方法来加密的时候存在内存泄露的问题,但是在OC上使用就不会出现内存泄露;Swift为何会泄露这个还未知、尽请告知。
(直接正文)
先添加头文件:<CommonCrypto/CommonDigest.h>
OC方式

- (NSString *)md5OC:(NSString *)string {
    const char *cStr = [string UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5(cStr, (int)strlen(cStr), digest);

    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
        [output appendFormat:@"%02x", digest[i]];
    }
    return output;
}

Swift方式

func md5() -> String {
    let str = self.cStringUsingEncoding(NSUTF8StringEncoding)
    let strLen = CUnsignedInt(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
    let digestLen = Int(CC_MD5_DIGEST_LENGTH)
    let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)
    CC_MD5(str!, UInt32(strLen), result)
    let hash = NSMutableString.init(capacity: Int(CC_MD5_DIGEST_LENGTH) * 2)
    for i in 0 ..< digestLen {
        hash.appendFormat("%02x", result[i])
    }
    result.destroy()
    return hash as String
  }

第三方MD5加密库:CryptoSwift

相关文章

  • iOS 数据加密

    iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密 MD5加密 MD5:全称是Message D...

  • iOS加密

    iOS代码常见的加密方式包括MD5加密、AES加密、BASE64加密,RSA加密。 MD5加密 MD5是不可逆的只...

  • iOS 加密解密

    iOS各类加密算法详解 iOS & Java md5 加密报错@constant kCCAlignmentEr...

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS Md5 加密

    iOS Md5 加密: Implicit conversion loses integer precision: ...

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • iOS如何使用MD5加密

    在登录注册时,经常采用MD5加密技术对密码,也用于对敏感数据进行加密。本文简单介绍了iOS中MD5加密的使用方式。...

  • IOS中的加密方式MD5、sha512

    title : IOS中的加密方式MD5、sha512category : IOS .h文件 .m文件

  • iOS密码MD5加密实现

    iOS md5加密密码 密码进行MD5加密是一个必要项,直接把代码拷贝进去,建立NSString的分类就可以。 ....

网友评论

      本文标题:iOS:MD5加密

      本文链接:https://www.haomeiwen.com/subject/czvibttx.html