【发布时间】:2017-11-12 06:13:01
【问题描述】:
在基于 java 的分布式系统中,我需要从根字符串 s_i 创建多个随机(尽可能多)字符串 {x_i}。同时,我还需要验证字符串 {x_i} 是否是从 s_i 生成的,而不是其他根字符串。每个 x_i 的长度是固定的,而 s_i 的长度是可变的。
我怎样才能做到这一点?期待您的帮助。
【问题讨论】:
-
我没有得到验证部分。据我所知,鉴于
x_i和s_i,无法确保x_i不是来自其他根字符串。 -
随机字符串和可验证是否来自根对我来说似乎是不可能的。要么有一些模式,所以你可以评估它是否来自同一个根,或者字符串是随机的。
-
@maraca 我不敢苟同!看我的答案:一个看似随机的数字,可验证来自根字符串。
-
@MichaelDeardeuff 我认为您只是将根和随机字符串连接起来(这可能是使用唯一分隔符可以获得的最佳效果)。否则可能会发生冲突,不仅仅是因为哈希。例如。 (A, BCD), (AB, CD), (ABC, D) 在连接后都给出相同的字符串。在我看来,连接根和随机字符串并不是真正随机的,即使在散列或加密之后也是如此。
-
@maraca 首先,是的,这仍然可以通过将根长度包含到哈希中来改进。其次,一个好的散列函数与随机是没有区别的。
标签: java algorithm encryption hash distributed-system