我正在研究一个项目,我需要使用一些哈希功能来制作哈希字符串。该哈希字符串应该是唯一的,由6至13个字符(固定长度)组成。

我使用数据库存储数据,因此对于每个记录,我都有一个唯一的ID。我想使用此独特的ID来制作哈希字符串(以实现所得的哈希字符串的独特性)。

我需要此哈希字符串仅由有效字符(0-9 AZ AZ)组成。

我应该使用哪个哈希功能来实现此目标?如何产生这样的哈希字符串?

稍后添加:我想生成此字符串并将其传递给用户,因此他可以稍后再回来编辑该条目。任何其他想法都是可以接受的。

有帮助吗?

解决方案

使用crypt:

$hash = crypt("somevaluetohash", $uniqueid);

唯一的ID是盐,因此您可以根据ID生成不同的值。因此,如果一个用户的密码为“ somevaluetohash”,而另一个用户则具有相同的密码,则结束哈希将不会相同。

其他提示

<?php
  $id;
  $hash_full = md5($id); //hash('sha256', $id);
  $hash_cropped = substr($hash_full, 0, 6);
?>

采用 哈希() 对于其他哈希算法。

但是,您需要什么?对我来说,从ID中生成哈希并不是很有意义,您不能只是使用ID吗?

真的需要是一个加密校验和吗?还是更简单的校验和合适?数据库提供的主关键本身是否不合适?

您有很多选择,从最简单 CRC32 最先进的 SHA512.

但是,如果您是为某些特定应用程序执行此操作(例如 文件系统哈希, , 或者 查找附近的物体 使用一些指标),然后您必须指定更多问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top