我需要用唯一的文件名保存图像,并将文件名保存在数据库中。我过去经常做MD5散列,并用散列得到的值的文件名保存图像。
但是,我希望将不必要的空间使用从32个字符减少到10-12个字符。
我不想substr()所获得的md5散列为12个字符。
相反,有没有办法创建一个10-12个字符的自定义散列?
发布于 2009-12-16 08:59:06
您可以用16个字符表示128位MD5散列值(每个字符8位,而不是只有4个)。
发布于 2009-12-16 09:15:43
使用下面的函数Tempnam怎么样?
http://php.net/manual/en/function.tempnam.php
在指定的目录中创建一个具有唯一文件名的文件,其访问权限设置为0600。如果该目录不存在,tempnam()
可能会在系统的临时目录中生成一个文件,并返回该文件的名称。
发布于 2009-12-16 08:54:51
也许使用CRC32而不是MD5?它是8个字符,而不是32个字符,但它更接近您的目标。
https://stackoverflow.com/questions/1913246
复制相似问题