普贤教程 › 包参考
aescbc 包
AES-CBC / AES-CTR
| 项 | 值 |
|---|---|
| 包名 | aescbc |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | aescbc.px |
| 分类 | 认证与安全 |
| 文件数 / 行数 | 1 / 180 |
安装与引入
bash
pxpkg init # 首次 pxpkg add aescbc@0.2.0 pxpkg install
px
import aescbc所属分类教程:认证与安全
公开接口
| 函数 | 参数 |
|---|---|
aes_to_bytes | v |
aes_to_list | b |
aes_hex | data |
aes_unhex | h |
aes_xor | a, b |
aes_pkcs7_pad | data, block |
aes_pkcs7_unpad | data |
aes_cbc_encrypt | key, iv, data |
aes_cbc_decrypt | key, iv, ct |
aes_cbc_decrypt_ok | key, iv, ct |
aes_ctr_crypt | key, nonce, data |
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
_aes_ctr_block | nonce, counter |
_aes_ctr_keystream | key, nonce, counter |
_aes_xor_bytes | a, b |
_aes_pkcs7_pad | data, block_size |
_aes_pkcs7_unpad | data |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/aescbc — AES-CBC / AES-CTR ------------------------------------------------------------ 纯函数库,双模式一致(px run / px build 结果相同)。 实现上用内建 bytes 版(任意二进制、不做 UTF-8 校验): aes_encrypt_bytes(data, key, iv) → bytes # CBC-PKCS7 加密 aes_decrypt_bytes(ct, key, iv) → bytes | null # padding 非法 → null aes_encrypt_ecb_bytes(data, key) → bytes # ECB-PKCS7(CTR 取 keystream 用) 公开函数: aes_cbc_encrypt(key, iv, data) → bytes # CBC-PKCS7 aes_cbc_decrypt(key, iv, ct) → bytes | null # null = padding 非法 aes_cbc_decrypt_ok(key, iv, ct) → Ok(bytes) | Err(msg) aes_ctr_crypt(key, nonce, data) → bytes # CTR 加解密同一函数 aes_xor(a, b) → bytes # 等长 XOR aes_pkcs7_pad(data, block) → bytes # 16 字节块 PKCS#7 填充 aes_pkcs7_unpad(data) → bytes | null aes_to_bytes(v) / aes_to_list(b) → 类型互转(bytes / list[int] / string) aes_hex(data) / aes_unhex(hex) → 十六进制互转 参数口径:key / iv / data 都可用 bytes、list[int] 或 string(内部统一转 bytes)。 key 16/24/32 字节 → AES-128/192/256;iv 固定 16 字节;nonce 12 字节(补 4 字节 大端计数器)或 16 字节(当作初始计数器块,自增末 4 字节)。 需要 list[int] 时用 aes_to_list(结果)。 ============================================================