mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-05 22:29:30 +08:00
1 line
No EOL
1.1 KiB
Text
1 line
No EOL
1.1 KiB
Text
const { asUTF8:t, toHEX:n } = require('worktop/buffer');function e(e,r){return crypto.subtle.digest(e,t(r)).then(n)}var r=e.bind(0,"MD5"),s=e.bind(0,"SHA-1"),a=e.bind(0,"SHA-256"),i=e.bind(0,"SHA-384"),u=e.bind(0,"SHA-512");function o(n,e,r){return crypto.subtle.importKey("raw",t(e),n,!1,r)}function H(t,n,e=!1){return crypto.subtle.generateKey(t,e,n)}function b(n,e,r){return crypto.subtle.sign(n,e,t(r))}function A(n,e,r,s){return crypto.subtle.verify(n,e,s,t(r))}function f(t,n){if(t.byteLength!==n.byteLength)return!1;let e=t.length,r=!1;for(;e-- >0;)t[e]!==n[e]&&(r=!0);return!r}async function c(n,e,r,s,a){let i=await o("PBKDF2",e,["deriveBits"]),u={name:"PBKDF2",salt:t(r),iterations:s,hash:n};return crypto.subtle.deriveBits(u,i,a<<3)}function y(t,n,e){return o({name:"HMAC",hash:t},n,["sign"]).then((t=>b("HMAC",t,e)))}var d=y.bind(0,"SHA-256"),l=y.bind(0,"SHA-384"),S=y.bind(0,"SHA-512");exports.HMAC=y;exports.HMAC256=d;exports.HMAC384=l;exports.HMAC512=S;exports.MD5=r;exports.PBKDF2=c;exports.SHA1=s;exports.SHA256=a;exports.SHA384=i;exports.SHA512=u;exports.digest=e;exports.keygen=H;exports.keyload=o;exports.sign=b;exports.timingSafeEqual=f;exports.verify=A; |