在前端开发领域,JavaScript 不可避免地会涉及到加密和解密的问题。其中,CryptoJS 是一个流行的开源 JavaScript 库,支持常见加密算法,如 MD5,SHA-1,SHA-256,AES 等。
我们可以使用 npm 包 angular-crypto-js,在 Angular 应用中轻松地集成 CryptoJS。
安装 angular-crypto-js
我们可以通过 npm 安装 angular-crypto-js:
npm install angular-crypto-js
然后,在我们的项目中引入模块:
-- -------------------- ---- ------- ------ - -------------- - ---- -------------------- ----------- ------------- - ------------ -- -------- - -------------- -------------- -- ---------- -------------- -- ------ ----- --------- - -展开代码
使用 angular-crypto-js
在 Angular 应用中使用 CryptoJS 算法非常简单。首先,在组件中导入 CryptoJS:
import * as CryptoJS from 'crypto-js';
然后,我们可以使用 CryptoJS 提供的各种算法进行加密和解密操作。
MD5 算法
MD5 算法可以将任意长度的字符串转换为一个 128 位的字符串,常用于密码校验。
字符串加密
let plaintext = 'hello, world!'; let ciphertext = CryptoJS.MD5(plaintext).toString(); console.log(ciphertext); // 5eb63bbbe01eeed093cb22bb8f5acdc3
二进制数据加密
let data = new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]); let ciphertext = CryptoJS.MD5(CryptoJS.lib.WordArray.create(data)).toString(); console.log(ciphertext); // 5eb63bbbe01eeed093cb22bb8f5acdc3
SHA-256 算法
SHA-256 算法是一种哈希算法,将任意长度的输入字符串映射为固定长度的输出字符串,常用于数字签名和认证。
字符串加密
let plaintext = 'hello, world!'; let ciphertext = CryptoJS.SHA256(plaintext).toString(); console.log(ciphertext); // 43e0892a6ea335dd6ce943a9e66149fa7b17821b40ca4a8a1d8625b5e5b88cad
二进制数据加密
let data = new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]); let ciphertext = CryptoJS.SHA256(CryptoJS.lib.WordArray.create(data)).toString(); console.log(ciphertext); // 43e0892a6ea335dd6ce943a9e66149fa7b17821b40ca4a8a1d8625b5e5b88cad
AES 算法
AES 算法是一种对称加密算法,常用于数据传输过程中的加密和解密。
字符串加密
let plaintext = 'hello, world!'; let key = CryptoJS.enc.Utf8.parse('1234567890123456'); let iv = CryptoJS.enc.Utf8.parse('1234567890123456'); let ciphertext = CryptoJS.AES.encrypt(plaintext, key, { iv: iv }).toString(); console.log(ciphertext); // U2FsdGVkX18xRW18TsyJbQ2os9yocUJ7Vv4pm6U1NQ0=
字符串解密
let ciphertext = 'U2FsdGVkX18xRW18TsyJbQ2os9yocUJ7Vv4pm6U1NQ0='; let key = CryptoJS.enc.Utf8.parse('1234567890123456'); let iv = CryptoJS.enc.Utf8.parse('1234567890123456'); let bytes = CryptoJS.AES.decrypt(ciphertext, key, { iv: iv }); let plaintext = bytes.toString(CryptoJS.enc.Utf8); console.log(plaintext); // hello, world!
总结
npm 包 angular-crypto-js 是一个方便易用的工具,可以帮助我们在 Angular 应用中轻松地集成 CryptoJS 算法并进行加密和解密操作。本文介绍了如何在 Angular 应用中使用 angular-crypto-js 进行 MD5、SHA-256 和 AES 算法的加密和解密。这些算法在实际开发中经常用到,我们可以通过学习本文的内容来掌握它们的基本用法和核心思想,进而更好地应用它们来保障数据安全和信息保密。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/185269