![]() |
1
199
有两个步骤:
Swift 2.0版本:
输出:
Swift 3.0版本:
输出:
Swift 5.0版本:
输出:
笔记:
有关如何创建桥接标头,请参阅 this SO answer . 一般来说,MD5不应用于新工作,SHA256是当前的最佳做法。 不推荐使用的文档部分示例:MD2、MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512(Swift 3+)
name参数将哈希函数名称指定为字符串
此函数接受要哈希的哈希名称和字符串,并返回数据: name: A name of a hash function as a String string: The String to be hashed returns: the hashed result as Data
示例:
输出:
|
![]() |
2
103
截至
iOS 13
苹果公司增加了
|
![]() |
3
49
在阅读了这里的其他答案(并且还需要支持其他哈希类型)之后,我编写了一个String扩展,它处理多个哈希类型和输出类型。
注意:CommonCrypto包含在Xcode 10中,因此您可以简单地
更新:Swift 4&5使用相同的String+Crypto。swift文件。 有一个单独的数据+密码。swift 5的swift文件(见下文),因为swift 4&5. 字符串+加密。swift--(用于swift 4和5)
雨燕5 --数据+Crypto.swift
雨燕4 --数据+Crypto.swift
编辑:由于哈希实际上发生在Data上,我将哈希算法拆分为Data扩展。这允许同样的算法也用于SSL证书固定哈希操作。 下面是一个简短的示例,说明如何将其用于SSL Pinning操作:
回到原来的答案 我用这个测试了哈希算法:
这是打印结果:
|
![]() |
4
28
原始链接来自 http://iosdeveloperzone.com |
![]() |
5
25
Swift 4.*,Xcode 10更新: 在Xcode 10中,您不必使用 桥接集管 此外,您还可以使用
然后写一个类似的方法:
用法:
输出:
|
![]() |
6
21
我发布了 pure Swift implementation 它不依赖于CommonCrypto或其他任何东西。它在麻省理工学院许可证下可用。 代码由一个 single swift file 你可以直接加入你的项目。如果您愿意,还可以将包含的Xcode项目与框架和单元测试目标一起使用。 使用简单:
打印:
swift文件包含文档和更多示例。 |
![]() |
7
20
在里面 雨燕5.3 你能做到的
|
![]() |
8
10
使用 加密 实现这一点的开销太大了。 这个 accepted answer 是完美的!然而,我只想分享一个 敏捷的 伊埃 代码方法使用 斯威夫特2.2 .
请记住,您仍然必须
|
![]() |
9
9
雨燕5 答案为字符串扩展名(基于 the great answer of Invictus Cody ):
用法:
|
![]() |
10
6
这是基于zaph答案的扩展
与swift 3.0完全兼容。您仍然需要
|
![]() |
11
4
在swift编程中,最好使用字符串函数,因此使用起来很容易。 在这里,我使用上面给出的解决方案之一制作了一个字符串扩展。谢谢@wajih
用法
|
![]() |
12
4
Swift 5.3:基于@Radu Ursache和@mluisbrown答案:字符串的简单扩展
用法:
|
![]() |
13
3
|
![]() |
14
2
答案
雨燕5
有适当的内存管理,没有
实例
结果:
|
![]() |
15
1
我用迦太基和昔普托来做这件事。
|
![]() |
16
1
MD5是一种哈希算法,无需为此使用庞大的CommonCrypto库(并被苹果审查拒绝),只需使用任何MD5哈希库即可。 我使用的一个这样的库是 SwiftHash ,MD5的纯快速实现(基于 http://pajhome.org.uk/crypt/md5/md5.html ) |
![]() |
17
1
基于 Cody's solution ,我有一个想法,我们应该澄清MD5的结果是什么,因为我们可以将结果用作十六进制字符串或Base64字符串。
上面的函数实际上返回一个
如果需要十六进制字符串作为最终结果(如问题所问),我们可以继续使用 科迪解
如果需要Base64字符串作为最终结果
|
![]() |
18
0
|
![]() |
19
0
我的两美分(如果你需要快速md5 数据 /NSData,例如您下载或读取磁盘或网络的二进制文件) (无耻地来自“Swift 5答案作为字符串扩展(基于Invictus Cody的伟大答案)”):
测试:
|
![]() |
Mark George · 如何在swift ui中为文本提供内部填充 1 年前 |
![]() |
Safa Ads · CDN:无法下载中继URL:https://cdn.jsdelivr.net/cocoa/Specs/2/e/c/RxSwift/3.0.0-rc.1/RxSwift.podspec.json响应:SSL连接错误 1 年前 |
![]() |
Frakcool · 满足条件时,SwiftUI动画背景颜色更改 2 年前 |