#加密解密 #aes-256 # #npm #npm 包 #aes256-ctr #node-aes256

simple-aes

一个简单的AES256-ctr加密解密库,基于npm包(aes256)

2个稳定版本

1.0.1 2023年1月13日

#1380 in 密码学

MIT 许可证

5KB
69

simple-aes


一个简单的AES256-ctr库,基于node-aes256包

示例


use simple_aes::{encrypt, decrypt};

fn main() {
    // Key can be any length since it will be SHA256 hashed
    let encrypt = encrypt("12345abcdef", "my-super-secret-key").unwrap();

    let decrypt = decrypt(encrypt, "my-super-secret-key").unwrap();

    assert_eq!(decrypt, "12345abcdef".to_string())
}

流程


  • 加密
    • 数据和密钥被传递
    • 创建一个随机的16字节iv
    • 密钥被SHA256散列
    • 使用iv和散列加密数据
    • 将iv和加密数据连接起来,base64编码,并作为字符串返回
  • 解密
    • 密钥被SHA256加密
    • 加密数据和密钥被传递
    • 数据被base64解码为一个Vec<u8>
    • Vec中的前16个元素被用于iv。
    • 第一个16个元素之后的每个元素都与密钥一起传递到解密中
    • 解密后的数据作为一个字符串返回

依赖

~2.7–3.5MB
~79K SLoC