php - HashMap 像名称

标签 php hash sha

我正在将图像上传到 S3,我希望为每个上传的图像创建一个唯一的名称。

我正在使用干预来制作图像:

$img = Image::make($file->getRealPath());

然后我对图像进行哈希处理:

$name = hash('sha256', $img);

问题是,当我上传同一张图片时,它被赋予了相同的名称。

我该如何解决这个问题?

最佳答案

你应该试着往里面加盐。即使附加日期/时间也应该为您提供一个唯一的名称。 干杯!

附言(编辑):

$data = Image::make($file->getRealPath())->encode('data-url'); 

$name = hash('sha256', $data . strval(time()));

首先我们以“字符串方式”对数据进行编码,这样我们就可以将时间值连接成一个字符串。

如果您想要额外的“随机性”,请添加用户 cookie、用户名等。

最终解决方案:

$data = implode('', file($file->getRealPath()));

$name = hash('sha256', $data.strval(time()));

关于php - HashMap 像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160553/

相关文章:

php - 安全的 Mysqli 语句以避免 SQL 注入(inject),但表单仅发送空白信息

javascript - 如何转义 Javascript 字符串中的斜杠?

java - 像 HashCalc 一样获取 HexString 的 SHA1

python - 计算 SHA-1 摘要时 Python 和 C++ 中的不同结果

php 数组 - 检测修改的行并编辑

php - 使用 neooxygen php neoclient 无需依赖

java - 我应该如何解码由 Hashing.murmur3_32() 编码的长变量?

jquery - 我不希望 url #hash 在提交表单后出现在 url 中

bash - 如何只检测我的 bash shell 脚本中的不同文件?

python - 同时转换为 SHA512 哈希