PHP如何写哈希表,在PHP和Mysql中实现哈希表的步骤

我是编程语言的新手,我使用的是PHP和mysql.我得到了一个在PHP中做哈希表的任务.我需要做的是,存储用户收集的项目然后显示它.在通过互联网进行一些研究后,我将在实施哈希表时执行以下步骤,如果我错了请纠正我:

>设置表格:

– &GT用户表:uid(int [5]),用户名(varchar [128]),item_id(int [8],items_id_hash(int [50])

– &GT项目表:item_id(int [5]),item_name(varchar [128]),items_id_hash(int [50])

>创建一个哈希函数(如何创建哈希函数?自己创建或从互联网上获取?)将密钥转换为哈希值然后插入数据库.例如:hash item_id = 001到哈希值=(例如)12345.然后插入到users表中.

>显示/搜索.从用户检索哈希值,然后将其与items表进行比较并显示它.

问题:

>我的步骤是否正确?

>我在哪里可以找到一个好的PHP哈希函数?我可以使用md5或sha1或盐吗?

解决方法:

我认为你的哈希表的想法有点[废弃]. Hashtables将密钥分解为相似的列表.例如:基于名字的第一个字母的哈希表,因此将有26个列表.您的哈希是名称的第一个字母,然后可以更快地搜索.

md5,sha1用于派生用于验证数据未被篡改的哈希值.它们通常有128位或160位版本.因此,它需要X数据并通过散列发送它以得到一个128位的字母数字字符串,无论它在哪里都应该是相同的.这通常是安全的事情.

编辑:扩展关于如何派生密钥的问题.

您可以利用数据模数来创建用于行的键.在示例数据%X中,其中X是您希望拥有的键的总数.这个问题是X很难找到;如果您有20个项目,那么将X设置为20是可行的,并且可以快速搜索,因为每个项目都有自己的行.但如果您有1000个项目,则执行%1000是不可行的.做一些像X = 75这样的事情会更好.

标签:php,mysql,hashtable

来源: https://codeday.me/bug/20190611/1215121.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值