我在 linux 终端中使用 SHA256 算法并使用 crypto.subtle 为同一字符串获取不同的 hexdigest。这是我得到的:
$ echo "foobar" | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
并使用 crypto.subtle:
crypto.subtle.digest("SHA-256", new TextEncoder().encode("foobar")).then((hash) => {
console.log("rohdas hash " + hash);
let arr = [...new Uint8Array(hash)].map(c => c.toString(16).padStart(2, '0')).join('');
console.log(arr); }).catch(err => console.log(err));
}
//c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
我也在尝试生成 zip 文件的 SHA256 摘要,但遇到了一些 XRayWrapper 错误。
这是文件摘要的代码:
let reader = new FileReader();
reader.readAsArrayBuffer(new File('/data/myfile.zip'));
reader.onloadend = () => {
console.log(reader.result + " " + reader.result.byteLength);//[object ArrayBuffer] 336
window.crypto.subtle.digest('SHA-256', reader.result).then((calculatedHash) => {// warning1 here
console.log("calculatedHash " + calculatedHash);//calculatedHash [object Opaque]
let calculatedHashHex = [...new Uint8Array(calculatedHash)];// error2 here
}).catch((err) => {console.log("digest error " + err);});
*warning1*
JavaScript Warning: "XrayWrapper denied access to property Symbol.toPrimitive (reason: object is not safely Xrayable). See https://developer.mozilla.org/en-US/docs/Xray_vision for more information. Note that only the first denied property access from a given global object will be reported."
*error2*
JavaScript Error: "Error: Accessing TypedArray data over Xrays is slow, and forbidden in order to encourage performant code. To copy TypedArrays across origin boundaries, consider using Components.utils.cloneInto()."
我能够生成文件的哈希值。即使对于字符串它不匹配(可能是编码等问题),文件哈希与 sha256sum 值匹配。我使用的“窗口”对象实例存在一些问题。结束这个问题。
• 有没有办法在特定日期找到带有给定标签的 docker 镜像的摘要?
• Point Jenkins Robot 插件将日志存储在主节点的不同路径
• Java InputStream:复制到同时计算hash
• 无法打开文件或 uri 以从 ca-cert.pem 加载 CA 证书
• 如何从 Java 的 keytool 获取 MD5 指纹,而不仅仅是 SHA-1?
• 我正在尝试从 artifactory 获取 Digest SHA 值,想知道如何获得它
• 比较文件与键/ ID节点,如果差异在兄弟节点中则生成输出
• 获取 Mac 或类似 Linux 系统上的文件扩展名列表