gpt4 book ai didi

swift - Q : Getting a File's MD5 Checksum in Swift

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:00 25 4
gpt4 key购买 nike

假设我想使用 Swift 2.x 获取位于 OSX 的 /bin 目录中的 bash 的校验和。对于我的 OSX 版本,MD5 是

 5d7583d80e5314ac844eedc6d68c6cd7

我使用 md5 bash 计算了它。我还使用 online tool 验证了它.

我决定使用 CommonCrypto,因为它看起来可能比 other options at this time 有速度优势.当我运行我的代码时,我得到了不同的结果:

bash: d574d4bb40c84861791a694a999cce69

如有任何帮助,我们将不胜感激。 bridging-header 和 AppDelegate 的内容如下。

md5-Bridging-Header.h

#import <CommonCrypto/CommonCrypto.h>

AppDelegate.swift

import Cocoa

extension String {
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!, strLen, result)

let hash = NSMutableString()
for i in 0..<digestLen {
hash.appendFormat("%02x", result[i])
}

result.destroy()

return String(format: hash as String)
}
}



@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var window: NSWindow!


func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
let fm = NSFileManager.defaultManager()
let path = "/bin"
let items = try! fm.contentsOfDirectoryAtPath(path)
for item in items {
print("\(item): " + item.md5())
}
}

}

最佳答案

我认为您的程序会计算字符串 "bash" 的 MD5,但不会计算名为 bash 的文件的内容。

关于swift - Q : Getting a File's MD5 Checksum in Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com