sha256哈希PHP并存储在MySQL上

时间:2011-07-27 15:21:42

标签: php mysql hash sha256

现在我有一个网站,允许用户上传一个存储在我服务器本地目录中的文件。上传文件后,我会为一些用户生成一个非常昂贵的操作(使用两个java程序)。由于这些操作非常昂贵,我现在希望能够使用SHA256来保存已上载的每个文件的数据库。这样,如果有人上传文件并且该文件已经处理完毕,我不必再次处理它我只能显示现有的HTML。

为了确保与文件关联的HTML是最新的,我还想拥有两个java程序的版本,我在与散列值相关联的文件上运行。

所以逻辑是这样的:
  1.用户提交文件   2.如果文件尚未在服务器上,照常营业。
  3.如果是,请检查它用于生成html的两个java程序的哪个版本   4.如果当前版本较新,请重新生成html。

我不太了解SHA或MySQL,所以任何帮助都会非常感激。真的问题归结为:我如何在MySQL数据库上存储一堆散列值及其两个版本标识符,并在以后检索该信息。

如果问题不清楚,请告诉我,以便清除混乱。

谢谢!

1 个答案:

答案 0 :(得分:0)

hash_file()可以创建文件的sha256哈希值。

对于db,我想象一个表如下

表名:File_Hash,列'id'{PK,AI,int},'hash'{text},'engine'{int},'filepath'{varchar}

使用此布局,您可以在'filepath'中存储对文件的引用,在'hash'中存储sha256文件,并标识'engine'中使用的java程序(第一个java程序为1,另一个为2)