Phương thức crypto.createCipheriv () trước tiên sẽ tạo và sau đó trả về đối tượng mật mã theo thuật toán được truyền cho khóa đã cho và hệ số ủy quyền (iv).
Cú pháp
crypto.createCipheriv(algorithm, key, iv, options)
Tham số
Các thông số trên được mô tả như bên dưới -
-
thuật toán - Nó lấy đầu vào cho thuật toán sẽ được sử dụng để tạo mật mã. Một số giá trị có thể là:aes192, aes256, v.v.
-
phím - Nó nhận đầu vào cho khóa thô được sử dụng bởi thuật toán và iv. Các giá trị có thể có có thể thuộc loại:chuỗi, bộ đệm, TypedArray hoặc DataView. Nó có thể là một đối tượng kiểu bí mật.
-
iv - Còn được gọi là vector khởi tạo. Tham số này nhận đầu vào cho iv sẽ làm cho mật mã không chắc chắn và duy nhất. Nó không cần phải là một bí mật. Các kiểu giá trị có thể có của nó là:chuỗi, bộ đệm, TypedArray, DataView. Giá trị này có thể là rỗng nếu mật mã không cần thiết.
-
tùy chọn - Đây là một tham số tùy chọn để kiểm soát hành vi luồng. Đây không phải là tùy chọn khi mật mã được sử dụng ở chế độ CCM hoặc OCB (Như 'aes-256-ccm')
Ví dụ
Tạo tệp có tên - createCipheriv.js và sao chép đoạn mã bên dưới. Sau khi tạo tệp, sử dụng lệnh sau để chạy mã này như được hiển thị trong ví dụ bên dưới -
node createCipheriv.js
createCipheriv.js
// A node demo program for creating the ECDH // Importing the crypto module const crypto = require('crypto'); // Initializing the algorithm const algorithm = 'aes-256-cbc'; // Initializing the key const key = crypto.randomBytes(32); // Initializing the iv vector const iv = crypto.randomBytes(16); // Creating the function to encrypt data function encrypt(text) { // Creating the cipher with the above defined parameters let cipher = crypto.createCipheriv( 'aes-256-cbc', Buffer.from(key), iv); let encrypted = cipher.update(text); encrypted = Buffer.concat([encrypted, cipher.final()]); // Returning iv and the encrypted data return { iv: iv.toString('hex'), encryptedData: encrypted.toString('hex') }; } // Printing public & private curve keys... var output = encrypt("TutorialsPoint"); console.log(output);
Đầu ra
C:\home\node>> node createCipheriv.js { iv: '3dd899aa441c00d4d8d2ff95abb2e684', encryptedData: 'b4985053bc1507fc25a4d99823dc8b03' }
Ví dụ
Hãy xem thêm một ví dụ.
// A node demo program for creating the ECDH // Importing the crypto module const crypto = require('crypto'); // Initializing the algorithm const algorithm = 'aes-192-cbc'; // Defining and initializing the password const password = '123456789' // Initializing the key const key = crypto.scryptSync(password, 'TutorialsPoint', 24); // Initializing the iv vector const iv = Buffer.alloc(16, 0); // Creating the cipher with the above defined parameters const cipher = crypto.createCipheriv(algorithm, key, iv); let encrypted = ''; // Reading and encrypting the data cipher.on('readable', () => { let chunk; while (null !== (chunk = cipher.read())) { encrypted += chunk.toString('base64'); } }); //Handling the closing/end event cipher.on('end', () => { console.log(encrypted); }); // Printing public & private curve keys... cipher.write('TutorialsPoint'); cipher.end(); console.log("Completed... !");
Đầu ra
C:\home\node>> node createCipheriv.js Completed... ! uqeQEkXy5dpJjQv+JDvMHw==