gpt4 book ai didi

javascript - Bash 脚本和 Javascript 的标准哈希算法?

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:49 24 4
gpt4 key购买 nike

我的 Mac 中有一个目录,其中包含具有以下名称的文件 -

Directory images -
1.jpg
2.jpg
3.jpg
4.jpg

我想编写一个 bash 脚本,通过使用一些标准哈希算法来重命名此文件夹中的所有文件,以便该目录现在看起来像这样 -

假设散列 key 是 common_key = "mykey123"

Directory images -
U2FsdGVk.jpg
X1O9Z6e.jpg
ECdjybF.jpg
U2FsdGVajpg

我怎样才能实现这个目标?

Furthur,我正在 Nodejs(基本上是 javascript)中编写一些代码,我希望从这四个图像中随机选择一个图像并显示它,所以我使用 -

var random_image_number = Math.floor((Math.random()*4)+1); // Picking a random number out of 4

假设 random_image 为 3。现在我需要显示图像编号 3。如果我没有对图像名称进行哈希处理,我通常会这样做 -

<img src="/images/" + random_image_number + ".jpg" />

但是现在我需要对生成的随机数再次使用标准加密算法,然后才能显示图像。 (我一直强调“标准”,因为相同的哈希算法必须在 JS 端以及 bash 脚本中工作并生成相同的结果)

所以我需要这样的东西

var random_image_number = Math.floor((Math.random()*4)+1); // Picking a random number out of 4
var random_image_number_hashed = some_hashing_function(common_key, random_image_number)
<img src="/images/" + random_image_number_hashed + ".jpg" />

请告诉我可以使用什么算法。它不需要太复杂,但必须在 bash 脚本和 javascript 端给出相同的结果。

此外,我不确定如何编写 bash 脚本来使用哈希算法重命名所有文件,因此任何与此相关的代码都将非常有用。谢谢。

最佳答案

使用openssl重命名文件和crypto.js在 javascript 方面,您应该能够使用 SHA1 来散列文件名。

以下 bash 循环将执行重命名。请注意,它假定文件名中没有空格字符。

for file in `/bin/ls *.jpg`; do
hashedFileName=`echo -n ${file%.*} | openssl dgst -sha1 -hmac "myKey123"`;
mv $file $hashedFileName.jpg;
done

对于每个图像名称,Javascript 端将类似于以下内容:

// hash filename "1.jpg":
var hashedFileName = CryptoJS.HmacSHA1("1", "myKey123") + ".jpg";

关于javascript - Bash 脚本和 Javascript 的标准哈希算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11549084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com