@hopeio/utils
Version:
javascript utils
2 lines (1 loc) • 740 B
JavaScript
;const f=require("crypto");typeof crypto>"u"&&(crypto=f.webcrypto);const i=crypto,e=crypto.subtle;async function s(t,r,c){const n=new TextEncoder().encode(t),o=new TextEncoder().encode(r),y=new TextEncoder().encode(c),a=await e.importKey("raw",o,{name:"AES-CBC"},!1,["encrypt"]),p=await e.encrypt({name:"AES-CBC",iv:y},a,n);return btoa(String.fromCharCode.apply(null,new Uint8Array(p)))}async function u(t,r,c){const n=Uint8Array.from(atob(t),d=>d.charCodeAt(0)),o=new TextEncoder().encode(r),y=new TextEncoder().encode(c),a=await e.importKey("raw",o,{name:"AES-CBC"},!1,["decrypt"]),p=await e.decrypt({name:"AES-CBC",iv:y},a,n);return new TextDecoder().decode(p)}exports.compatiblecrypto=i;exports.decrypt=u;exports.encrypt=s;