为用户表单提交创建收据

时间:2012-08-09 06:11:14

标签: python form-submit

要求我们的用户每月填写并提交一份表格。因此,每个月我们都应该有一个包含三元组数据的表单(用户名,月份,年份)。我希望我们的用户能够通过为他们创建收据来证明他们确实提交了该特定月份的表单。因此,每个月都会有一份报告,其中包含用户提交的数据以及收据。我不希望用户能够自己创建收据。

我在想的是创建一个包含usernamemonthyearsecret_word并提供 md5哈希的字符串该字符串以用户身份作为收据。这样,因为用户不会有秘密字,他们将无法生成md5哈希。但是,当他们看到md5哈希的复杂性时,我的用户可能会抱怨。此外,如果找到秘密词,他们将能够为每个人创建收据。

有没有一种标准的方式来做我要求的事情?你能推荐我任何其他可能的解决方案吗?

我正在使用Python但是一些伪代码或链接到适当的方法就可以了。

1 个答案:

答案 0 :(得分:1)

@Serafeim,你的方法非常适合这种情况。以下是扩展它的一些想法:

  1. 确保secret_word(在散列术语中称为 salt )足够长。
  2. 使结束功能更复杂,例如

    hash = h(h(username) + month + year + h(salt))

  3. 使用更复杂的哈希函数,例如SHA1
  4. 不要给最终用户整个哈希值。例如。 md5十六进制摘要包含32位数字,但报告中的哈希值的前5-10位就足够了。
  5. <强>更新

    如果您有资源,请为每个用户生成随机 salt。然后,即使用户以某种方式学习了盐和哈希函数,它对其他人来说仍然是无用的。