Gathering detailed insights and metrics for kaven-basic
Gathering detailed insights and metrics for kaven-basic
Gathering detailed insights and metrics for kaven-basic
Gathering detailed insights and metrics for kaven-basic
npm install kaven-basic
Typescript
Module System
Node Version
NPM Version
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
No dependencies detected.
1# NPM 2npm install kaven-basic 3 4# Yarn 5yarn add kaven-basic 6 7# PNPM 8pnpm i kaven-basic
Node.js:
1import { GenerateGuid } from "kaven-basic"; 2 3console.log(GenerateGuid());
Browser:
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="utf-8"> 6 <script type="text/javascript" src="kaven-basic/bundles/index.umd.js"></script> 7</head> 8 9<body> 10 <script>alert(KavenBasic.GenerateGuid());</script> 11 <script> 12(async () => { 13 /** 14 * @type { import("../src") } 15 */ 16 const KavenBasic = window.KavenBasic; 17 18 const { 19 AnsiColors_Background_Cyan, 20 AnsiColors_BrightMagenta, 21 AnsiColors_Green, 22 ConsoleLogger, 23 FormatCurrentDate, 24 GenerateGuid, 25 KavenBrowserRSA, 26 Logger, 27 ArraySequenceEqual, 28 } = KavenBasic; 29 30 try { 31 // Logger 32 { 33 Logger.Handlers.add(new ConsoleLogger(true)); 34 35 Logger.Info(FormatCurrentDate(), { 36 Colors: { 37 DateTime: AnsiColors_Background_Cyan, 38 Level: AnsiColors_BrightMagenta, 39 Message: AnsiColors_Green, 40 }, 41 }); 42 43 Logger.Warn(GenerateGuid()); 44 } 45 46 const str = "test 中文"; 47 48 // Create, Encrypt/Decrypt, Sign/Verify 49 { 50 const rsa = await KavenBrowserRSA.Create(); 51 52 Logger.Info(rsa.PublicKey, { Raw: true }); 53 Logger.Info(rsa.PrivateKey, { Raw: true }); 54 55 // RSA-OAEP 56 const enc = new TextEncoder(); 57 const data = enc.encode(str); 58 59 const encryptedData = await rsa.Encrypt(data); 60 const decryptedData = await rsa.Decrypt(encryptedData); 61 62 Logger.Info(ArraySequenceEqual(new Uint8Array(decryptedData), data)); 63 64 const dec = new TextDecoder(); 65 const decryptedStr = dec.decode(decryptedData); 66 67 Logger.Info(`Data Match: ${str === decryptedStr}`); 68 69 // RSA-PSS 70 const signature = await rsa.Sign(data); 71 const pass = await rsa.Verify(data, signature); 72 73 Logger.Info(`Signature Match: ${pass}`); 74 } 75 76 // Import 77 { 78 const publicKey = `-----BEGIN PUBLIC KEY----- 79MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArb0e2QEoDsnL41+3esUo1WUp6/lxYwhJd9CvAyahXlZNjLnLOpSK2VjTaGMU+FiL4pwCYpQDAjDl8dPyGokVBwG34e6i4nOmGl0cHnuE+fwPZrP7cQwVMVYHHRpVaVwDLHls3Jmz8xOlvihPEyBxzBYXD5Ssus227Akl0FRhaJ3P+va7vENMGILEIjKTF9HAafHxYWay4qj6fiwyS+mx8DoNVsYaDtcRrgqm2HOiyPST3qBnk9IH171Ozo7bUzJsvQrtBUVnuuYR8MlcbamMQxdlG6sC9fZRX4JCiF2zYcRFVWR9Qr6mrPv+FTRDr6YEB/I4D9+JOf8vrKvLsu3eppV5OXRmTgi3ttxIbzfhJBlnANg87nvdmuXQgPhfJ7UU7gbMwjk/+3PobAA4uHRJz3Et7WNok5rRBv0qTw9GVK99SfGbYJB8xbG61Rj3fOFphlc5CbZn2/7bwUnCr23jU0gzeS0WkhZWNekmAFa+kktW0raG9LuhGCzcE8J0LpXrr3gjQnESLCcWlDhKx3eZhNOKOBWpHQt9uo3DIadmEpSJrkga7SRLw4bTv6B41Y+gm+VBTAZipo77pWbYWEpZ+AkSBTRq06YvepuUteniNYVX+vtjh5LSn0OJRsK2HXxP62zZxwhuc05DaEIFvqo3ihVh7pOab8LkRtMtlhMwIFMCAwEAAQ== 80-----END PUBLIC KEY-----`; 81 82 const privateKey = `-----BEGIN PRIVATE KEY----- 83MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCtvR7ZASgOycvjX7d6xSjVZSnr+XFjCEl30K8DJqFeVk2Mucs6lIrZWNNoYxT4WIvinAJilAMCMOXx0/IaiRUHAbfh7qLic6YaXRwee4T5/A9ms/txDBUxVgcdGlVpXAMseWzcmbPzE6W+KE8TIHHMFhcPlKy6zbbsCSXQVGFonc/69ru8Q0wYgsQiMpMX0cBp8fFhZrLiqPp+LDJL6bHwOg1WxhoO1xGuCqbYc6LI9JPeoGeT0gfXvU7OjttTMmy9Cu0FRWe65hHwyVxtqYxDF2UbqwL19lFfgkKIXbNhxEVVZH1Cvqas+/4VNEOvpgQH8jgP34k5/y+sq8uy7d6mlXk5dGZOCLe23EhvN+EkGWcA2Dzue92a5dCA+F8ntRTuBszCOT/7c+hsADi4dEnPcS3tY2iTmtEG/SpPD0ZUr31J8ZtgkHzFsbrVGPd84WmGVzkJtmfb/tvBScKvbeNTSDN5LRaSFlY16SYAVr6SS1bStob0u6EYLNwTwnQuleuveCNCcRIsJxaUOErHd5mE04o4FakdC326jcMhp2YSlImuSBrtJEvDhtO/oHjVj6Cb5UFMBmKmjvulZthYSln4CRIFNGrTpi96m5S16eI1hVf6+2OHktKfQ4lGwrYdfE/rbNnHCG5zTkNoQgW+qjeKFWHuk5pvwuRG0y2WEzAgUwIDAQABAoICAEWdLySNWZMfWWI4QojfQf7LQ7JpJv0i32kyRUXSbzshAn6+HUfSKBZxiHfdp5PgyuAYWb5NBy2UETbGEU5/mdzOW/MbzslExIvwveka3gvaawNgX4IK8NztVvlayVlnhGAIIU39CkT+HN2mQhTsXZyER2Y3UMSi08Yc3jls7gDgpuqsfUmwf2ec0eDP+e9D3MC2sFyyLUAzq/btV5PiRil24UxhISTMGSnu266EGvhBQ5SjGg15TSotEMwkIo5h+H8Axzri9e7F6+9ah33rPyfM0nb1HUEXmsBVrbn9LXihj5RpKOWbBabva33sjKhvMVNLwxndHBuQe/ZIedyughT8Pbb3nacflnO55PirK+bIkqj1UoZ+a4G+tIyIiFKK7psJ6dmhKSiRTbbbhPAkBNJtsMvX8aCrvKzpo6PLlfTcgShxEw/M1i5LHWXl7HBWZtjr2+NZROKKuOO62n7HdfNXe4lYPPQybAUJGp+Szejh1bRJoCjwkbShKXSzCY7tTqMUzKBuSknjUcwBAeRWgZBC/pdfMCSib8i3OSAGG4T5kyZ49QypSnML958mrvqYv52OLkp+l75BVOp3YCThqLE1mY4t7rt5fjGxPCC+AefM8rG4j69/nzZPky4LgZcni4M5OgrGx7ci+sj5+KhtTTuLHxHc/+jdxvbksS5ri4xNAoIBAQDtpgHgRHUzveoaIwFtX2p5YVrE+yzTlI/6ihgrl4VJTYuDl0jVCOWf6JuT7+fEfVXviDFX6t5OmmkzEus3pDqPa89HiJHHH425KDlFhjYFSqwcloIB8hYOsM0TdIHI1rDekfwqiks40SpvmeM468dtjzJ8zmJAgw96gMr9cJ0bCOh+I1mcZ2m2EghHY83E9SSGH5FEFPV6c/6AQ6Tl8AWzhHObCthgg174a+VAh/Q/2okCq5lWDCl4p23qFsYKuIcUAp60zxMy4dUc0kXHw0qyoHHeWKYak+L5wBR/dVw2vWhzpsH6nEHwa87CKrHJgA4jONqljOzcSLs/xwvNcOR/AoIBAQC7J7QY9ssyIVVP40IG7LCgjI7USge5ECbQNZhb4Tg260uFCbJQnf8ukXhee2fBXxQRyq/vOXrPj6azoSbU8Kioo8fc/d+R+ekiTj/mn/xikey9d2JwOv1NBDti2b8X2X+tmJvaRwRIJ8mnejzLzTWb5+wx7+G1JpxsIAC5wuFPUA7f/hgOE20l0DTvNjrtquBFKSe/2G1w0GFupFmnFw6C0OgaKXnIsLRlM1R2KEU3NF1M0csIaBs1QCuSRpFHzKjAgaJ896K21jsgSP8tSCHmk01mNCRlv9rWnPHz3KH3hXhLzblo1OEkMDAXo51MNf3djh63YOjBR+h8VsKxFQotAoIBACPZLONFsGBTv6KdsTNsd0VEGEsqkIKCII3skuTQgHykQ+1fvs7T/r92eTGBuPZ86Z+ubbMTbOFyjXf03KKSFXtZCfWCdmsRKXHKzYjdS/zUXM4bLhVZDVa9+NF8e69uI1QPtXg9UEeL1djr38jQWE8AkN8eytdsbcNO9k/w0uInH9sXPgdH2jxqz/Dk7z9Ms2vAC0u31afZI4T5r0A4SsPfsQisRCOa7ZKPxA9N8txG/O/4LrM6Nm9K4luzf8BSQZ4VHxerPPwp8NneJkSSAwybA1JFERllQZHnFbB8ZaKkQ8NeXliNhazctl23zwXUWU2a3/ClJ327QvPF9NPSucUCggEARIOsctcmXBvH148ixNYxcxUB1MWlPiKjkuWL+Vbh9Xj+FJ4QIWM14B5xKmWS/j+IYVsKPVGVnBbCuE/un1Xa6KHMsSJfjlkm9+AdlJhNFOjG+jWSW/O8d01tUCrWwixliW+s3qPQ9XlbYWxmhVWCoqis1zsyLdcMvKiam2a0hQyR5X5n3/9MneMy/b+kow1DPQ5r9teMeRhQEuknyPuv3EQONEWqx8WoxMOd0AO+Ew+geFb1NQanrz7mtI4Q8XAC9zZ9/bHKZ5TV4GPYxwL5JigW1auRB47M1nRuPxAuWycJeva9QZttMIpTkNPc6eF6Jnm41PktPFTOz3YToDBLoQKCAQAD7NaIw/XBdlN6RCrQ+BrWsqyIjKXj7l+/L00GyQ4UFkWULPgVoE6zya86s9SJRv2OtTrgXQCms/XM7pNV+U4fnh1ioBhb0XPjADyz8nye7IAJswfhthdyFa3QVH6ryLi85TKIstf1RHGnpbtaIrVslamD5DmIrfA4D+knjMV3AcvRlid7fNXCGW3zDAna2BuW5w5NPTCgYrtcIlilmsZC379cRn2sR+UTB42OQLVXp3q2guKvYO8iZQp9yrdwJ0abjzEFBsayBS9OHlKZdIKdForhZp4GTng5FeJnJyp/dILT49LhEo2BRR/uyezXOZgiwpoF2gZi4kk5rJ8zGQMc 84-----END PRIVATE KEY-----`; 85 86 const str = "kaven@wuwenkai.com 中文"; 87 88 const rsa = new KavenBrowserRSA(publicKey, privateKey); 89 90 Logger.Info(`DecryptFromString: ${await rsa.DecryptFromString(await rsa.EncryptToString(str)) === str}`); 91 Logger.Info(`VerifyFromString: ${await rsa.VerifyFromString(str, await rsa.SignToString(str))}`); 92 93 // from KavenRSA 94 const encryptedData = "HzAXSygyMgIMNr5TlCyL/uYdSjFjL1V0Ccioq85KO5Sx9a6IvTKSZQkVDtNYron4mwcj/n7ZaATpSJDn3cJWHihtTYNiQeMS960WHEaCYtyipx4k43BJoxlRkUy0SDpdPnsQ032V7emDIB+L2x/Ju01xDbF0z5igSTIXJFbtS2epD4kkrmMdHLc/d2WdnBgK5qFJOArehStC007CQN8XsnXTxgFMMYO7emIqGLMCvzrfHBCjN380Ns3yYcOqyws07SeOAxbM7EYG5B9zyJQXdSG00h8GWKDlB+/PqGY0pPuKwwMfRLns5sn1twCM6MVqShvsS6E3yiFWsbZS4NJy4hBPRiQirslpp3XOB0OEEByvQ58dtuFo/bGwyfI9FsNymqof6Kp5Y9SUYZwbCgxCvI0mqAyHdD10uWxi7lm1klazywb5roCzWqMgMhqa8+6XmcyDKZSKWuVu70vV8WZvKLTnOi6TmdSe9xz/5Vo6OoAAj1YPMh+7GMu1HLruthl2/TGfdzwH7F4tkrcaWLZVZ3ZpKP/SXg38NnMlg3L/B3i4gU57XVGSkYPTLvN3zFx4K7/Zld7Y6TZzt7p2qlUt475jBE8eZ5U1Fllwf7V5al2yAZkm3HHq8WUeVdabOq0FySd1GLyy0+Fgqp+kpBoCtRZN47ICxFD+KR/HsYBIJVw="; 95 const decryptedStr = await rsa.DecryptFromString(encryptedData); 96 Logger.Info(decryptedStr === str); 97 98 const signature = "QF0gO0tbCUMa5RLm3pY7UoQiR07vMFPBLf/Gt9hcD2HP5wcBDE3/ttgy3WQxoxscW46zy1alR/tNMT+OPvn8W+IU1IJT+oRORsiQAMvWev8UHaF7b5oU0+Oe6Ez0pcR9dSWwziaiGLtQ1yFFwzyivXO/iH+RIAXu5l9cOMIl+ah94d5ZgNd49I+ZnmLbAuzwD0dOiV/bNSB+3+iMgnqOqu9FURqInZZtoWM+rV5mZ7T/QOYGgyUZkpc5hszD7wztBXjNqp/yyIuCnGkSoc34Vu3lcSEOqik3S6caWFv0iJoy9smyo7x3uOcTaQ4+OfGFdJzSQA1DwVZUlfxlmzMpp/cRjO4b5lBmcwzLxoEKJtvhagc+n51bT63/IW1pFhpwf9deZ+moSIbZfAZn2Ytb7eij+zuXe/Jqs2cGLu/rcnhMJEf7/+sCzuxUtd/xBWx7gGTKGjPrgnlw23eSwfnUsL+HvicHBTgyXrOI8lofmMqsT5shnjQGgMpCECs3q9rhq258mLB0syTqtA8Gg9CDz+s1aketjNqLcdaxDCqNM0LYOEvY7kL9AYrmjqyTg5Ke2TdJx5pdXyqbjBSGEWY7FXb+LZhCLQpCdu3SFQ0isV3L7z+zvwEOlIfL8aHqjfKZHxW+NSUiRBXYOCfy8Xe5ZBKLMuks0iQSwGi3mCjGbrU="; 99 Logger.Info(await rsa.VerifyFromString(str, signature)); 100 } 101 } catch (ex) { 102 Logger.Error(ex); 103 } 104})(); 105 </script> 106</body> 107 108</html>
The hash method provided in this library is designed with simplicity and correctness in mind, not speed. If your use case involves frequent calls to the hash function or processing large volumes of data, you may experience performance limitations.
For performance-critical applications, consider using a more optimized hashing library or implementation (e.g., one based on hardware-accelerated algorithms or highly optimized native code).
No vulnerabilities found.
No security vulnerabilities found.