@aws- sdk/ 检查和
校验和算法和AWS SDK的灵活校验和中间软件.
标准化 API
以下的校验和 API 符号可供使用.
import { Sha1, Sha256 } from "@aws-sdk/checksums/sha";
import { Md5 } from "@aws-sdk/checksums/md5";
import { Crc32, Crc32c, Crc64Nvme } from "@aws-sdk/checksums/crc";
每个都遵循一个相同的接口,即Smithy Checksum接口:
interface Checksum {
update(chunk: Uint8Array): void;
digest(): Promise<Uint8Array>;
reset();
}
字节进入更新,校验和出自文摘.
在可能情况下,文摘是无损的. 也就是说,你可以消化 得到检查和,然后 继续增加更新数据.
一些校验和接受初始种子.
| 算法 | 文摘长度 | 无损文摘 | 接受秘密( HMAC) |
|---|---|---|---|
| 沙尔256 | 32 字节 | qq( 仅无秘密) | ✅ |
| 沙伊1号 | 20 字节 | qq( 仅无秘密) | ✅ |
| 妇女5人 | 16 字节 | ✅ | ❌ |
| Crc32 翻译 | 4 字节 | ✅ | ❌ |
| Crc32c 数据 | 4 字节 | ✅ | ❌ |
| Crc64 电脑 恩夫梅 | 8 字节 | ✅ | ❌ |
选择性 API
默认情况下,冠名的校验和算法(以上)将使用最佳执行 您的捆绑或运行时间环境, 其中一些使用本地可用的执行 . 所有校验和都有纯JavaScript倒置. 要使用特定的执行,请 可使用下列特定执行的导入符号,但不推荐这样做.
import {
// SHA1
Sha1Js,
Sha1Node,
Sha1WebCrypto,
// SHA256
Sha256Js,
Sha256Node,
} from "@aws-sdk/checksums/sha";
import { Md5Js, Md5Node } from "@aws-sdk/checksums/md5";
import {
// CRC32
Crc32Js,
Crc32Node,
// CRC32C
Crc32cJs,
Crc32cNode,
//CRC32NVME
Crc64Nvme,
Crc64NvmeJs,
} from "@aws-sdk/checksums/crc";
Sha1节点、Sha256节点和Md5节点使用 node:crypto 莉比,别这样.
Sha1WebCrypto使用微妙的密码,但当被缓冲的数据超过8 MB时又回到JS.
Crc32 翻译 节点用途 node:zlib。 。 。 .
Crc64 电脑 Nvme 装入时使用 AWS CRT @aws-sdk/crc64-nvme-crt。 。 。 .
AWS SDK对这个包有什么用?
AWS SDK使用Sha256进行签名V4签名,Crc32用于事件流消息完整性, 和所有其他算法用于数据完整性检查.