AesGcmParams

AesGcmParams là một dictionary của Web Crypto API, đại diện cho đối tượng cần truyền làm tham số algorithm vào SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), hoặc SubtleCrypto.unwrapKey() khi dùng thuật toán AES-GCM.

Để biết chi tiết về cách cung cấp các giá trị phù hợp cho tham số này, xem đặc tả cho AES-GCM: NIST SP800-38D, đặc biệt là mục 5.2.1.1 về Dữ liệu đầu vào.

Thuộc tính thể hiện

name

Một chuỗi. Giá trị này phải được đặt thành AES-GCM.

iv

Một ArrayBuffer, TypedArray, hoặc DataView chứa vector khởi tạo. Giá trị này phải là duy nhất cho mọi thao tác mã hóa thực hiện với cùng một khóa. Nói cách khác: không bao giờ tái sử dụng IV với cùng một khóa. Đặc tả AES-GCM khuyến nghị IV nên dài 96 bit và thường chứa các bit từ một bộ sinh số ngẫu nhiên. Mục 8.2 của đặc tả trình bày các phương pháp tạo IV. Lưu ý rằng IV không cần phải bí mật, chỉ cần duy nhất: vì vậy, ví dụ, việc truyền nó công khai cùng với thông điệp đã mã hóa là hoàn toàn chấp nhận được.

additionalData Optional

Một ArrayBuffer, TypedArray, hoặc DataView. Đây là dữ liệu bổ sung sẽ không được mã hóa nhưng sẽ được xác thực cùng với dữ liệu đã mã hóa. Nếu additionalData được cung cấp ở đây thì cùng dữ liệu đó cũng phải được cung cấp trong lời gọi tương ứng tới decrypt(): nếu dữ liệu truyền vào lời gọi decrypt() không khớp với dữ liệu gốc, quá trình giải mã sẽ ném ra một ngoại lệ. Điều này cho bạn một cách để xác thực dữ liệu liên quan mà không cần mã hóa nó.

Độ dài bit của additionalData phải nhỏ hơn 2^64 - 1.

Thuộc tính additionalData là tùy chọn và có thể bị bỏ qua mà không làm ảnh hưởng đến an toàn của thao tác mã hóa.

tagLength Optional

Một Number. Giá trị này quyết định kích thước, tính bằng bit, của thẻ xác thực được tạo trong thao tác mã hóa và được dùng để xác thực trong quá trình giải mã tương ứng.

Đặc tả Web Crypto API yêu cầu giá trị này phải là một trong các giá trị sau: 32, 64, 96, 104, 112, 120, hoặc 128. Mặt khác, đặc tả AES-GCM khuyến nghị giá trị nên là 96, 104, 112, 120, hoặc 128, dù 32 hoặc 64 bit có thể chấp nhận được trong một số ứng dụng. Để biết thêm hướng dẫn, xem Phụ lục C của ấn phẩm NIST về "Recommendation for Block Cipher Modes of Operation".

tagLength là tùy chọn và mặc định là 128 nếu không được chỉ định.

Ví dụ

Xem các ví dụ cho SubtleCrypto.encrypt()SubtleCrypto.decrypt().

Thông số kỹ thuật

Specification
Web Cryptography Level 2
# dfn-AesGcmParams

Tương thích trình duyệt

Các trình duyệt hỗ trợ thuật toán "AES-GCM" cho các phương thức SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), hoặc SubtleCrypto.unwrapKey() sẽ hỗ trợ kiểu này.

Xem thêm