Error[8]: Undefined offset: 3, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(plist),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是: >我的理解是正确的,我想要的是哈希函数吗? >我应该使用哪种功能(来自CommonCrypto). >我需要的是摘要? >我将如何在代码中进行 *** 我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(pList),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是:

>我的理解是正确的,我想要的是哈希函数吗?
>我应该使用哪种功能(来自CommonCrypto).
>我需要的是摘要?
>我将如何在代码中进行 *** 作? (我假设这应该在NSData实例上进行哈希处理?).我从谷歌搜索的理解是,我需要一个桥接头,但除此之外,使用CommonCrypto困扰我.如果使用第一方API(Apple)有一种更简单的方法,我很满意(我希望尽可能避免使用第三方代码).

非常感谢!

创建每个文件的加密哈希值,您可以将其用于唯一性比较. SHA-256是一个当前的哈希函数,在iOS上使用Common Crypto非常快,在iPhone 6S上SHA256将处理大约1GB /秒减去I / O时间.如果您需要更少的字节,只需截断哈希.

使用Common Crypto(Swift3)的示例

对于散列字符串:

func sha256(string: String) -> Data {    let messageData = string.data(using:String.EnCoding.utf8)!    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        messageData.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(messageData.count),digestBytes)        }    }    return digestData}let testString = "testString"let testHash = sha256(string:testString)print("testHash: \(testHash.map { String(format: "%02hhx",
#import <CommonCrypto/CommonCrypto.h>
) }.joined())")let testHashBase64 = testHash.base64EncodedString()print("testHashBase64: \(testHashBase64)")

Output:
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

注意:添加到您的桥接标题:

func sha256(data: Data) -> Data {    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        data.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(data.count),digestBytes)        }    }    return digestData}let testData: Data = "testString".data(using: .utf8)!print("testData: \(testData.map { String(format: "%02hhx",[+++]) }.joined())")let testHash = sha256(data:testData)print("testHash: \(testHash.map { String(format: "%02hhx",[+++]) }.joined())")

对于散列数据:

[+++]

Output:
testData: 74657374537472696e67
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3

另见Martin的链接.

总结

以上是内存溢出为你收集整理的如何使用swift 3在iOS上散列文件?全部内容,希望文章能够帮你解决如何使用swift 3在iOS上散列文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 4, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(plist),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是: >我的理解是正确的,我想要的是哈希函数吗? >我应该使用哪种功能(来自CommonCrypto). >我需要的是摘要? >我将如何在代码中进行 *** 我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(pList),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是:

>我的理解是正确的,我想要的是哈希函数吗?
>我应该使用哪种功能(来自CommonCrypto).
>我需要的是摘要?
>我将如何在代码中进行 *** 作? (我假设这应该在NSData实例上进行哈希处理?).我从谷歌搜索的理解是,我需要一个桥接头,但除此之外,使用CommonCrypto困扰我.如果使用第一方API(Apple)有一种更简单的方法,我很满意(我希望尽可能避免使用第三方代码).

非常感谢!

创建每个文件的加密哈希值,您可以将其用于唯一性比较. SHA-256是一个当前的哈希函数,在iOS上使用Common Crypto非常快,在iPhone 6S上SHA256将处理大约1GB /秒减去I / O时间.如果您需要更少的字节,只需截断哈希.

使用Common Crypto(Swift3)的示例

对于散列字符串:

func sha256(string: String) -> Data {    let messageData = string.data(using:String.EnCoding.utf8)!    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        messageData.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(messageData.count),digestBytes)        }    }    return digestData}let testString = "testString"let testHash = sha256(string:testString)print("testHash: \(testHash.map { String(format: "%02hhx",
#import <CommonCrypto/CommonCrypto.h>
) }.joined())")let testHashBase64 = testHash.base64EncodedString()print("testHashBase64: \(testHashBase64)")

Output:
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

注意:添加到您的桥接标题:

func sha256(data: Data) -> Data {    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        data.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(data.count),digestBytes)        }    }    return digestData}let testData: Data = "testString".data(using: .utf8)!print("testData: \(testData.map { String(format: "%02hhx",) }.joined())")let testHash = sha256(data:testData)print("testHash: \(testHash.map { String(format: "%02hhx",[+++]) }.joined())")

对于散列数据:

[+++]

Output:
testData: 74657374537472696e67
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3

另见Martin的链接.

总结

以上是内存溢出为你收集整理的如何使用swift 3在iOS上散列文件?全部内容,希望文章能够帮你解决如何使用swift 3在iOS上散列文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(plist),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是: >我的理解是正确的,我想要的是哈希函数吗? >我应该使用哪种功能(来自CommonCrypto). >我需要的是摘要? >我将如何在代码中进行 *** 我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(pList),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是:

>我的理解是正确的,我想要的是哈希函数吗?
>我应该使用哪种功能(来自CommonCrypto).
>我需要的是摘要?
>我将如何在代码中进行 *** 作? (我假设这应该在NSData实例上进行哈希处理?).我从谷歌搜索的理解是,我需要一个桥接头,但除此之外,使用CommonCrypto困扰我.如果使用第一方API(Apple)有一种更简单的方法,我很满意(我希望尽可能避免使用第三方代码).

非常感谢!

创建每个文件的加密哈希值,您可以将其用于唯一性比较. SHA-256是一个当前的哈希函数,在iOS上使用Common Crypto非常快,在iPhone 6S上SHA256将处理大约1GB /秒减去I / O时间.如果您需要更少的字节,只需截断哈希.

使用Common Crypto(Swift3)的示例

对于散列字符串:

func sha256(string: String) -> Data {    let messageData = string.data(using:String.EnCoding.utf8)!    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        messageData.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(messageData.count),digestBytes)        }    }    return digestData}let testString = "testString"let testHash = sha256(string:testString)print("testHash: \(testHash.map { String(format: "%02hhx",
#import <CommonCrypto/CommonCrypto.h>
) }.joined())")let testHashBase64 = testHash.base64EncodedString()print("testHashBase64: \(testHashBase64)")

Output:
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

注意:添加到您的桥接标题:

func sha256(data: Data) -> Data {    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        data.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(data.count),digestBytes)        }    }    return digestData}let testData: Data = "testString".data(using: .utf8)!print("testData: \(testData.map { String(format: "%02hhx",) }.joined())")let testHash = sha256(data:testData)print("testHash: \(testHash.map { String(format: "%02hhx",) }.joined())")

对于散列数据:

[+++]

Output:
testData: 74657374537472696e67
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3

另见Martin的链接.

总结

以上是内存溢出为你收集整理的如何使用swift 3在iOS上散列文件?全部内容,希望文章能够帮你解决如何使用swift 3在iOS上散列文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
如何使用swift 3在iOS上散列文件?_app_内存溢出

如何使用swift 3在iOS上散列文件?

如何使用swift 3在iOS上散列文件?,第1张

概述我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(plist),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是: >我的理解是正确的,我想要的是哈希函数吗? >我应该使用哪种功能(来自CommonCrypto). >我需要的是摘要? >我将如何在代码中进行 *** 我有许多文件将存在于服务器上.用户可以在设备上创建这些类型的文件(pList),然后将其上传到所述服务器(CloudKit).我想通过内容使它们独一无二(唯一的方法应该适应创建日期的变化).我的理解是我应该散列这些文件以获取它们的唯一文件名.我的问题是:

>我的理解是正确的,我想要的是哈希函数吗?
>我应该使用哪种功能(来自CommonCrypto).
>我需要的是摘要?
>我将如何在代码中进行 *** 作? (我假设这应该在NSData实例上进行哈希处理?).我从谷歌搜索的理解是,我需要一个桥接头,但除此之外,使用CommonCrypto困扰我.如果使用第一方API(Apple)有一种更简单的方法,我很满意(我希望尽可能避免使用第三方代码).

非常感谢!

创建每个文件的加密哈希值,您可以将其用于唯一性比较. SHA-256是一个当前的哈希函数,在iOS上使用Common Crypto非常快,在iPhone 6S上SHA256将处理大约1GB /秒减去I / O时间.如果您需要更少的字节,只需截断哈希.

使用Common Crypto(Swift3)的示例

对于散列字符串:

func sha256(string: String) -> Data {    let messageData = string.data(using:String.EnCoding.utf8)!    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        messageData.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(messageData.count),digestBytes)        }    }    return digestData}let testString = "testString"let testHash = sha256(string:testString)print("testHash: \(testHash.map { String(format: "%02hhx",
#import <CommonCrypto/CommonCrypto.h>
) }.joined())")let testHashBase64 = testHash.base64EncodedString()print("testHashBase64: \(testHashBase64)")

Output:
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

注意:添加到您的桥接标题:

func sha256(data: Data) -> Data {    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))    _ = digestData.withUnsafeMutableBytes {digestBytes in        data.withUnsafeBytes {messageBytes in            CC_SHA256(messageBytes,CC_LONG(data.count),digestBytes)        }    }    return digestData}let testData: Data = "testString".data(using: .utf8)!print("testData: \(testData.map { String(format: "%02hhx",) }.joined())")let testHash = sha256(data:testData)print("testHash: \(testHash.map { String(format: "%02hhx",) }.joined())")

对于散列数据:

Output:
testData: 74657374537472696e67
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3

另见Martin的链接.

总结

以上是内存溢出为你收集整理的如何使用swift 3在iOS上散列文件?全部内容,希望文章能够帮你解决如何使用swift 3在iOS上散列文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存