![]() |
1
11
MD5是检测一组数据变化的合理算法。但是,如果您不关心加密属性,并且非常关心算法的性能,那么您可以使用一种更简单的校验和样式的算法,这种算法设计不具有加密安全性。(尽管MD5的弱点在最近几年被发现,但它仍然被设计成加密安全的,因此比您的场景所需的工作要多)。 但是,如果您对MD5的计算性能感到满意,那么我就坚持使用它。 |
![]() |
3
0
你所做的对我来说很好。
如果服务器端的容量很便宜,最小化网络使用量至关重要,那么您可以让服务器记住每个客户机的最后一个数据集是什么,并且只发送每个请求上的差异(作为插入、删除和编辑的列表)。如果首先对数据行进行排序,可以使用差分算法(如
这种方法对网络中断很敏感——如果客户机没有收到一个响应,错误就会累积。但是,这可以通过让客户机随每个请求一起发送MD5哈希来解决:如果它与服务器期望的不同,则将发送整个列表,而不是更改列表。 |
![]() |
4
0
我同意乔纳森关于MD5的回答。至于检测更改的其他方法,如果您愿意在服务器上存储(或已经存储)最近更改的时间/日期,可以将其前后传递给客户机。您完全避免了计算,甚至可以使用大部分现有代码。
——
|
![]() |
5
-3
我认为任何常用的散列函数都会满足您的需要——提供实体的唯一表示。 对于您试图解决的问题,我的解决方案是拥有一个记录所有更改的后端表。不是更改本身,而是已更改行的标识符。定期回调服务器并获取所有已更改对象的列表,并使用该列表来决定客户机上哪些行需要更新/删除/添加。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |