作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个描述地址的结构,它看起来像:
class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
}
我正在寻找一种方法来为这个结构创建一个唯一标识符(我假设它也应该是一种string
)这取决于所有结构属性(例如 AddressLine1
的更改也会导致结构标识符的更改)。
我知道,我可以将所有属性连接在一起,但这提供了太长的标识符。我正在寻找比这短得多的东西。
我也假设不同地址的数量不应该超过100M。
关于如何生成这个标识符有什么想法吗?
提前致谢。
史前史:
数据库中有几个不同的表,其中包含一些信息+地址数据。数据以类似于上述格式的格式存储。
不幸的是,将地址数据移动到单独的表中目前成本非常高,但我希望将来会这样做。
我需要将一些额外的属性与地址数据相关联,并打算为此创建一个单独的表。这就是为什么我需要唯一标识地址数据。
最佳答案
将所有字段序列化为一个大的二进制值。例如,使用具有适当域分隔的串联。
然后使用足够长度的加密散列对该值进行散列。我更喜欢 256 位,但 128 位可能没问题。使用良好的散列,碰撞极为罕见,使用像 SHA-256 这样的 256 位散列,它们几乎是不可能的。
关于c# - 如何为地址结构生成唯一标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862032/
我是一名优秀的程序员,十分优秀!