0
我有一些代码从文件数据生成MD5字符串:测试我的MD5斯威夫特3码
extension Data {
func hexString() -> String {
let string = self.map{ String($0, radix:16) }.joined()
// "45769ca7ec1ac00cec11df87df982b7d"
return string
}
func MD5() -> Data {
var result = Data(count: Int(CC_MD5_DIGEST_LENGTH))
_ = result.withUnsafeMutableBytes {resultPtr in
self.withUnsafeBytes {(bytes: UnsafePointer<UInt8>) in
CC_MD5(bytes, CC_LONG(count), resultPtr)
}
}
return result
}
}
extension String {
func hexString() -> String {
return self.data(using: .utf8)!.hexString()
}
func MD5() -> String {
return self.data(using: .utf8)!.MD5().hexString()
}
}
我不知道这是工作,因为它可能仅仅是MD5的字符串,我从得到Vimeo是错误的。
首先,Swift 3代码看起来是否可以生成MD5?使用方法:
let fileHandle = try? FileHandle(forReadingFrom: getFileUrl(forFileId: id)!)
let fileData = fileHandle?.availableData
if let md5 = fileData?.MD5().hexString() { ... }
其次,是否有一个Web工具可用于上传我的文件并获取其MD5字符串?
更新:我测试了我在网上MD5工具文件,我得到以下散列:F0750875A790471702E9D2D34433729A
但我的代码产生这样的:f075875a79047172e9d2d34433729a
似乎如此接近!它必须是我的扩展中的某些东西。 Swift 3中有更好的MD5解决方案吗?
我找到了一个web工具:http://onlinemd5.com –