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ặcDataViewchứ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. additionalDataOptional-
Một
ArrayBuffer,TypedArray, hoặcDataView. Đâ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ếuadditionalDatađượ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ớidecrypt(): nếu dữ liệu truyền vào lời gọidecrypt()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
additionalDataphải nhỏ hơn2^64 - 1.Thuộc tính
additionalDatalà 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. tagLengthOptional-
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".
tagLengthlà 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() và 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.