2个稳定版本
1.0.1 | 2023年1月13日 |
---|
#1380 in 密码学
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