gpt4 book ai didi

hash - 是否存在通常被认为值得信赖的 SHA-256 javascript 实现?

转载 作者:行者123 更新时间:2023-11-28 04:15:22 25 4
gpt4 key购买 nike

我正在为论坛编写登录信息,需要在将密码发送到服务器之前在 javascript 中对客户端密码进行哈希处理。我无法确定我真正可以信任哪个 SHA-256 实现。我本以为会有某种大家都使用的权威脚本,但我发现大量不同的项目都有自己的实现。

我意识到使用其他人的加密货币总是一种信仰的飞跃,除非你有资格自己审查它,并且“值得信赖”没有通用的定义,但这似乎是一个足够常见和重要的事情,应该有就使用什么达成某种共识。我是不是太天真了?

编辑,因为它在评论中出现很多:是的,我们在服务器端再次进行更严格的哈希。客户端哈希并不是我们保存在数据库中的最终结果。客户端哈希是因为人类客户端请求它。他们没有给出具体原因,可能他们只是喜欢矫枉过正。

最佳答案

关于https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest我发现这个片段使用内部 js 模块:

async function sha256(message) {
// encode as UTF-8
const msgBuffer = new TextEncoder().encode(message);

// hash the message
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);

// convert ArrayBuffer to Array
const hashArray = Array.from(new Uint8Array(hashBuffer));

// convert bytes to hex string
const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
return hashHex;
}

请注意,crypto.subtle 仅在 httpslocalhost 上可用 - 例如,使用 python3 -m 进行本地开发http.server 您需要将此行添加到您的 /etc/hosts 中:0.0.0.0 本地主机

重新启动 - 您可以使用正在运行的 crypto.subtle 打开 localhost:8000

关于hash - 是否存在通常被认为值得信赖的 SHA-256 javascript 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915049/

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