Làm cách nào để bảo mật mật khẩu trong JavaScript?

Trong một trong các dự án web của mình, tôi yêu cầu thư viện JavaScript mã hóa và giải mã đơn giản và dễ triển khai có thể mã hóa một đoạn văn bản và sau đó giải mã chuỗi được mã hóa ở phía máy chủ

Tùy chọn đơn giản nhất là lược đồ mã hóa base64 có thể dễ dàng triển khai trong cả JavaScript gốc và Google Apps Script

Mã hóa Base64 bằng Google Apps Script

const base64Encode = (text) => {
  const base64data = Utilities.base64Encode(text, Utilities.Charset.UTF_8);
  return base64data;
};

const base64Decode = (base64data) => {
  const decoded = Utilities.base64Decode(base64data, Utilities.Charset.UTF_8);
  const input = Utilities.newBlob(decoded).getDataAsString();
  return input;
};

Mã hóa Base64 bằng JavaScript

const CryptoJS = require('crypto-js');

const encrypt = (text) => {
  return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text));
};

const decrypt = (data) => {
  return CryptoJS.enc.Base64.parse(data).toString(CryptoJS.enc.Utf8);
};

Nhược điểm rõ ràng là Base64 đang mã hóa (không mã hóa) và các chuỗi Base64 có thể dễ dàng giải mã

Nếu bạn đang tìm kiếm một thuật toán mã hóa an toàn yêu cầu cụm mật khẩu bí mật để giải mã văn bản được mã hóa, hãy đến với AES. Nó tạo ra các chuỗi dài hơn nhưng chúng không thể được giải mã nếu không có mật khẩu

Mã hóa và giải mã văn bản thuần túy AES

const CryptoJS = require('crypto-js');

const encryptWithAES = (text) => {
  const passphrase = '123';
  return CryptoJS.AES.encrypt(text, passphrase).toString();
};

const decryptWithAES = (ciphertext) => {
  const passphrase = '123';
  const bytes = CryptoJS.AES.decrypt(ciphertext, passphrase);
  const originalText = bytes.toString(CryptoJS.enc.Utf8);
  return originalText;
};

Mã hóa và giải mã AES bằng Google Apps Script

Nếu bạn muốn sử dụng thuật toán mã hóa AES với Google Apps Script, hãy sử dụng Apps Script Starter để nhập gói CryptoJS vào dự án của bạn như minh họa trong ví dụ này

import AES from 'crypto-js/aes';
import Utf8 from 'crypto-js/enc-utf8';

const encryptWithAES = (text, passphrase) => {
  return AES.encrypt(text, passphrase).toString();
};

const decryptWithAES = (ciphertext, passphrase) => {
  const bytes = AES.decrypt(ciphertext, passphrase);
  const originalText = bytes.toString(Utf8);
  return originalText;
};

global.testAES = () => {
  const inputText = 'Hello World';
  const passphrase = 'My Secret Passphrase';

  Logger.log({ inputText });

  const encryptedText = encryptWithAES(inputText, passphrase);
  Logger.log({ encryptedText });

  const decryptedText = decryptWithAES(encryptedText, passphrase);
  Logger.log({ decryptedText });
};

Ngoài ra, đối với Google Apps Script, thư viện cCryptoGS cũng có thể được sử dụng để triển khai mã hóa AES trong các dự án và tiện ích bổ sung Suite của bạn. Để bắt đầu, hãy truy cập Tài nguyên -> Thư viện và thêm thư viện MSJnPeIon6nzdLewGV60xWqi_d-phDA33 vào dự án Google Script của bạn

const encryptedMessage = cCryptoGS.CryptoJS.AES.encrypt('message', 'passphrase').toString();
Logger.log(encryptedMessage);

const decryptedMessage = cCryptoGS.CryptoJS.AES.decrypt(encryptedMessage, 'passphrase').toString(CryptoJS.enc.Utf8);
Logger.log(decryptedMessage);

Tập lệnh Google Apps Javascript

Chia sẻWhatsAppTwitterFacebook

Làm cách nào để bảo mật mật khẩu trong JavaScript?

Amit Agarwal

Chuyên gia phát triển của Google, Nhà vô địch Google Cloud

Amit Agarwal là Chuyên gia nhà phát triển của Google về Google Workspace và Google Apps Script. Ông có bằng kỹ sư về Khoa học Máy tính (I. I. T. ) và là blogger chuyên nghiệp đầu tiên ở Ấn Độ

Amit đã phát triển một số tiện ích bổ sung phổ biến của Google bao gồm Mail Merge cho Gmail và Document Studio. Đọc thêm về Lifehacker và YourStory

Làm cách nào để bảo vệ mật khẩu trong JavaScript?

Việc này được thực hiện với. (hoặc) toán tử . nếu (mật khẩu==pass1. mật khẩu==pass2. mật khẩu==pass3) cảnh báo('Mật khẩu chính xác. Nhấn OK để vào.

Làm cách nào để đặt độ mạnh mật khẩu trong JavaScript?

Thật đơn giản, để làm cho mật khẩu của bạn mạnh, bạn phải sử dụng bảng chữ cái viết hoa và viết thường, một số số và ký tự đặc biệt . Kiểm tra những ví dụ này. javascript123 là mật khẩu rất yếu, javascript@123 có độ mạnh trung bình và JavaScript@123 mạnh.

Làm cách nào để kiểm tra mật khẩu mạnh trong JavaScript?

RegEx để kiểm tra độ mạnh của mật khẩu .
Mật khẩu dài ít nhất 8 ký tự ( ?=. {số 8,} )
Mật khẩu có ít nhất một chữ cái viết hoa ( ?=. *[A-Z] )
Mật khẩu có ít nhất một chữ thường ( ?=. .
Mật khẩu có ít nhất một chữ số ( ?=. .
Mật khẩu có ít nhất một ký tự đặc biệt ( [^A-Za-z0-9] )

Cách an toàn để bảo vệ mật khẩu là gì?

Bằng cách kết hợp chữ hoa với chữ thường, số và ký tự đặc biệt như "&" hoặc "$" bạn sẽ tăng độ phức tạp của .