#text-encoding #base64 #algorithm #symmetric #aes-256 #sha-1 #api

tiny-crypto

tiny-crypto 库集成了常用的加密算法工具,API 设计简单易用。

4 个版本

0.1.3 2024年3月26日
0.1.2 2024年3月26日
0.1.1 2024年3月26日
0.1.0 2024年3月5日

#5 in #symmetric

Download history 33/week @ 2024-04-03 1/week @ 2024-04-10 2/week @ 2024-05-22 6/week @ 2024-05-29 3/week @ 2024-06-05

84 每月下载量
用于 wx-login-middleware

MIT 许可证

14KB
209 代码行

tiny-crypto

tiny-crypto 库集成了常用的加密算法工具,API 设计简单易用。

工具表

  • 加密散列函数 (hash)
    • Sha1
  • 对称加密 (sym)
    • Aes128, Aes192, Aes256
  • 文本编码器 (encoding)
    • Base64

示例

使用 sha1 哈希器

let result: Vec<u8> = tiny_crypto::sha1!(b"abcdefghijklmn", b"opqrstuvwxyz");
assert_eq!(result, tiny_crypto::sha1!(b"abcdefghijklmnopqrstuvwxyz"));

let hex_result: String = tiny_crypto::sha1_hex!(b"abcdefgh");
assert_eq!(hex_result, "425af12a0743502b322e93a015bcf868e324d56a");

使用 Aes128 加密器

use tiny_crypto::sym::{Cipher, Aes128};
let cipher = Aes128::from_key_array(b"This is the key!");
let plain = b"This is the plain text";
let iv = [0x66u8; 16];
let data = cipher.encrypt_with_iv(&iv, plain);
let out = cipher.decrypt_with_iv(&iv, &data);
assert_eq!(out, plain);

使用 Base64 编码器

use tiny_crypto::encoding::{Encoder, BASE64};
let origin: &[u8] = b"some bytes to encode";
assert_eq!(origin, &BASE64.from_text(&BASE64.to_text(origin)).unwrap());

使用 Hex 编码器

use tiny_crypto::encoding::{Encoder, HEX};
let origin: &[u8] = b"some bytes to encode";
assert_eq!(origin, &HEX.from_text(&HEX.to_text(origin)).unwrap());

许可证: MIT

依赖项

~0.8–1.1MB
~25K SLoC