我想将非敏感数据从移动应用程序提交到服务器。但我不希望外部来源能够提交数据。
我想对用哈希公式标记请求是否足够有一些意见。
例如:
MD5(MD5(message)+secretString)
消息将是唯一的,并且来自单一来源的提交之间至少有 10 分钟的间隔(如果在此时间之前从同一来源获得请求,它将被拒绝)。这就是为什么我认为完全加密请求是不值得的,但由于我在这方面没有经验,我决定与社区核实。
提前致谢。
我想将非敏感数据从移动应用程序提交到服务器。但我不希望外部来源能够提交数据。
我想对用哈希公式标记请求是否足够有一些意见。
例如:
MD5(MD5(message)+secretString)
消息将是唯一的,并且来自单一来源的提交之间至少有 10 分钟的间隔(如果在此时间之前从同一来源获得请求,它将被拒绝)。这就是为什么我认为完全加密请求是不值得的,但由于我在这方面没有经验,我决定与社区核实。
提前致谢。
该方法看起来不错,但很少考虑:
secretString
很容易地为应用程序提取。这里唯一的因素是攻击者的动机。您说您想向服务器提交数据,但如果您进行哈希处理,则服务器无法再恢复数据。不仅攻击者,甚至服务器也不知道数据是什么。如果您想实现机密性,则进行加密是解决此问题的最佳方法。正如另一位用户所说,在应用程序中有一个固定的秘密字符串对你没有任何好处,因为它可以很容易地恢复。您不能依赖不知道反转应用程序的“公式”的人比人们想象的要容易。因此,通过默默无闻的安全绝对不是要走的路。如果您想使用盐,请使用安全的随机数生成器,但是您还有一项额外的任务是在服务器上使用相同的盐进行验证(并且服务器需要事先获得消息)。