美文网首页iOS
Swift - SHA256 简介

Swift - SHA256 简介

作者: 墨林灵 | 来源:发表于2021-06-23 10:08 被阅读0次

引子

在编写个人项目的时候,需要给字符串加密。于是就编写了以前经常使用的MD5加密算法。但是该算法在 XCode 中显示在 iOS13 以后将被废弃,系统推荐使用 SHA256 算法。

下面是被警告的 MD5 算法。

var md5: String {

    let utf8 = cString(using: .utf8)

    var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))

    CC_MD5(utf8, CC_LONG(utf8!.count - 1), &digest)

    return digest.reduce("") { $0 + String(format:"%02x", $1) }

}

为什么废弃MD5

通过 Xcode 的警告可以了解到,MD5 在加密方面已经遭到破坏,为了数据安全不应该再使用它,应该使用更加安全的 SHA256 算法。

什么是SHA256

SHA 是 Secure Hash Algorithm 的缩写,即安全哈希算法。

SHA 的计算流程:对数字数据进行数学运算 -> 将计算出的哈希值与已知预期的哈希值进行比较 -> 从而确定数据的完整性。

哈希值可以从任意数据段生成,但该过程不能逆向,即不能从哈希值逆向生成数据。

SHA256 也成为 SHA2,它是从SHA1进化而来,目前没有发现SHA256被破坏,但随着计算机计算能力越来越强大,它肯定会被破坏,所以SHA3已经在路上了。

如何实现

extension String {

    var sha256: String {

        let utf8 = cString(using: .utf8)

        var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))

        CC_SHA256(utf8, CC_LONG(utf8!.count - 1), &digest)

        return digest.reduce("") { $0 + String(format:"%02x", $1) }

    }

}

参考

SHA256

相关文章

  • Swift - SHA256 简介

    引子 在编写个人项目的时候,需要给字符串加密。于是就编写了以前经常使用的MD5加密算法。但是该算法在 XCode ...

  • Swift语法01

    Swift 简介 查看Swift当前版本 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X...

  • Swift<一>

    Swift 简介 查看Swift当前版本 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X...

  • SHA256校验

    //sha256校验 - (NSString*)SHA256:(NSString*)string { cons...

  • 《The Swift Programming Language》

    简介 欢迎使用 Swift 关于 Swift 版本兼容性 Swift 初见 Swift 版本历史记录 Swift ...

  • Swift 入门学习

    Swift 分享大纲 Swift 简介 Swift 优缺点[https://www.jianshu.com/p/2...

  • Swift 基本语法04-"switch"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法06-数组和字典

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法03-"if let"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法04-...

  • Swift 基本语法05-"String"

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

网友评论

    本文标题:Swift - SHA256 简介

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