Cách mã hóa chuỗi bằng CryptTo-JS trong NodeJS

Cách mã hóa chuỗi bằng CryptTo-JS trong NodeJS là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Cách mã hóa chuỗi bằng CryptTo-JS trong NodeJS sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và NodeJS nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Đôi khi bạn muốn mã hóa thông tin trước khi lưu vào cơ sở dữ liệu để thông tin được an toàn hơn. Ví dụ khi bạn thiết lập mật khẩu cho User thì bạn phải mã hóa chuỗi mật khẩu đó rồi mới lưu vào CSDL, từ đó khi đăng nhập thì ta sẽ so sánh chuỗi đã mã hóa thay vì so sánh mật khẩu chưa mã hóa.

Trong NodeJS có một module hỗ trợ rất tốt chức năng này đó là module crypto-js, vì vậy trong bài này chúng ta sẽ tìm hiểu cách sử dụng module này.

1. Cài đặt module Crypto-js trong NodeJS

Để cài đặt Crypto lên Server thì bạn sử dụng npm và chạy đoạn code sau:



  npm install crypto-js 


Sau khi cài đặt xong là bạn có thể sử dụng ngay.

Để cài đặt tại Client thì bạn sử dụng Bower và chạy đoạn code sau:



  bower install crypto-js 


Riêng đôi với trường hợp sử dụng Bower thì chúng ta sẽ tìm hiểu sau.

2. Cách sử dụng module Crypto để mã hóa chuỗi

Trong Crypto có rất nhiều module riêng và mỗi module là một loại mã hóa khác nhau. Trong phần này mình sẽ demo một số module để các bạn hiểu nguyên tắc sử dụng. Chúng ta sẽ phân chia thành cách sử dụng ở backend và frontend, nhưng trong bài này chúng ta chỉ học cách sử dụng tại backend thôi nhé.

Bước 1: Tạo mới đối tượng CryptoJS


  var crypto = require('crypto-js'); 


Bước 2: Mã hóa (Encrypt)


var crypto = require('crypto-js');
 
// Mã hóa
var message = crypto.AES.encrypt('Nội dung cần mã hóa', 'itsasecret123').toString();
 
// Xem chuỗi đã mã hóa
console.log(message); 


Bước 3: Giải mã (Decrypt)


var crypto = require('crypto-js');
 
// Mã hóa
var message = crypto.AES.encrypt('Noi dung can ma hoa', 'ma bi mat').toString();
 
// Xem chuỗi đã mã hóa
console.log(message);
 
// Lấy danh sách byte đã mã hóa
var bytes = crypto.AES.decrypt(message, 'ma bi mat');
 
// Chuyển sang chuỗi gốc
var message_decode = bytes.toString(crypto.enc.Utf8);
 
console.log(message_decode); 


3. Danh sách các loại mã hóa của Crypto

Trong phần 2 mình chỉ sử dụng mỗi module AES chứ thực ra nó còn mấy chục module mã khóa khác nhau nữa. Và sau đây là danh sách các module mời các bạn tham khảo nhé.

  • crypto-js/core
  • crypto-js/x64-core
  • crypto-js/lib-typedarrays
  • crypto-js/md5
  • crypto-js/sha1
  • crypto-js/sha256
  • crypto-js/sha224
  • crypto-js/sha512
  • crypto-js/sha384
  • crypto-js/sha3
  • crypto-js/ripemd160
  • crypto-js/hmac-md5
  • crypto-js/hmac-sha1
  • crypto-js/hmac-sha256
  • crypto-js/hmac-sha224
  • crypto-js/hmac-sha512
  • crypto-js/hmac-sha384
  • crypto-js/hmac-sha3
  • crypto-js/hmac-ripemd160
  • crypto-js/pbkdf2
  • crypto-js/aes
  • crypto-js/tripledes
  • crypto-js/rc4
  • crypto-js/rabbit
  • crypto-js/rabbit-legacy
  • crypto-js/evpkdf
  • crypto-js/format-openssl
  • crypto-js/format-hex
  • crypto-js/enc-latin1
  • crypto-js/enc-utf8
  • crypto-js/enc-hex
  • crypto-js/enc-utf16
  • crypto-js/enc-base64
  • crypto-js/mode-cfb
  • crypto-js/mode-ctr
  • crypto-js/mode-ctr-gladman
  • crypto-js/mode-ofb
  • crypto-js/mode-ecb
  • crypto-js/pad-pkcs7
  • crypto-js/pad-ansix923
  • crypto-js/pad-iso10126
  • crypto-js/pad-iso97971
  • crypto-js/pad-zeropadding
  • crypto-js/pad-nopadding

Trong quá trình lập trình chúng ta sẽ đụng đến các module này, vì vậy tạm thời chúng ta sẽ không tìm hiểu.

4. Lời kết

Như vậy trong NodeJS có cung cấp cho chúng ta một module mã hóa chuỗi rất là tuyệt vời phải không các bạn, hy vọng tới bài thứ 12 này các bạn sẽ yêu thích NodeJS nhiều hơn nữa. Bài này mình sẽ dừng ở đây, bài tiếp theo chúng ta tìm hiểu về cách quản lý lỗi trong NodeJS.

Hy vọng với bài viết về Cách mã hóa chuỗi bằng CryptTo-JS trong NodeJS đã giải đáp giúp bạn phần nào về kiến thức lập trình NodeJS. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!