- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个用户数据库,由他们的设备 udid 标识(在 iOS 5 中已弃用)。我需要一种新方法来识别将不会生成我的数据库中已存在的字符串的设备。
udid 曾经是 SHA1(SerialNumber + IMEI + WiFiAddress + BluetoothAddress)
。
使用类似 MD5(MACAddress)
的输出作为我识别设备的新方法是否安全?从我读到的内容来看,MD5 和 SHA-1 似乎输出不同长度的字符串(分别为 128 位和 160 位),但我只是确保我没有遗漏任何内容。我真的不想以重复的标识符结束......
最佳答案
只需使用 SHA1(MAC | 0001)
代替前一个。创建一个已经存在的 SHA1 的可能性不大,因为它表明 SHA1 算法中存在真正的问题(冲突)。注意:我假设 + 表示连接,我用过 |作为串联。
如果您需要另一个唯一标识符,您可以在末尾增加计数器(以字符或其他方式,尝试 4 个字节)。
虽然 MD5 可能足够安全用于此目的,但我仍会尝试避免使用这种损坏的哈希 - 只需保持 SHA1(或转移到 SHA-256)即可。
关于iphone - 迁移到识别设备的新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859897/
如果有人能为我分解它,让我能理解它,我会非常感激。我知道它用于通过 apply 方法创建新对象。 Function.prototype.new = function () { var args
新版本的HADOOP中有一个方法。http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#conc
根据支持库变更日志和 Fragment 类文档 ( https://developer.android.com/reference/android/support/v4/app/Fragment.ht
根据支持库更改日志和 Fragment 类文档 (https://developer.android.com/reference/android/support/v4/app/Fragment.htm
执行Async BigJob() 的无限运行任务的正确方法是什么?并且可以根据要求停止 提示:我正在尝试学习 [一种] 新方法来更新我现有的策略。 我有一个简单的程序(测试程序),它有一个开始 和停止
我将解释我的想法:我使用 python 作为谷歌应用程序引擎 + js + css 主项目将存储在 src 文件夹下,如下所示:\src \app <--- 这里是 gae 的所有 python 应用
我是一名优秀的程序员,十分优秀!