生成唯一的密钥以识别系统

时间:2013-07-31 05:47:31

标签: php hash

我需要根据一些信息生成唯一标识符。将有多个客户端和一个服务器。每个客户端将首次在服务器上调用Web服务进行注册。每个客户端将发送系统名称(被认为是唯一的),登录用户名,注册日期,mac-address(可能)等。

根据这些信息,我想为该特定用户生成唯一标识符。我的服务器是用PHP编写的。我知道一些哈希方法可以生成一些唯一的密钥,但标准是什么,一般使用什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

一种有效的方法是将盐(只有服务器知道的一些字符)添加到客户端的连接细节中。获取hash个数据。在下面的示例中,salt是mysalt

<?php
echo hash('ripemd160', 'mysalt' . clientHostname . clientUsername . clientRegistrationDate);
?>

这种方法意味着哈希不容易被第三方猜测/反向设计。

答案 1 :(得分:0)

唯一身份识别的一个标准是UUID。有5个版本可供选择,具体取决于您可以提供的数据以及需要进行模糊处理的数据。

如果你能够安装PECL扩展,那就是一个非常好的扩展:http://pecl.php.net/package/uuid。如果没有搜索PHP UUID,你会发现一些纯PHP实现。