30 stable releases
4.0.1 | Nov 2, 2024 |
---|---|
3.1.13 | Nov 10, 2023 |
3.1.12 | Oct 14, 2022 |
3.1.10 | Mar 17, 2022 |
2.1.4 | Nov 14, 2018 |
#57 in Cryptography
13,790 downloads per month
Used in 25 crates
(21 directly)
50KB
1K
SLoC
MagicCrypt
MagicCrypt is a Java/PHP/NodeJS/Rust library to encrypt/decrypt strings, files, or data, using Data Encryption Standard(DES) or Advanced Encryption Standard(AES) algorithms. It supports CBC block cipher mode, PKCS7 padding and 64, 128, 192 or 256-bits key length.
For Rust
Example
use magic_crypt::{new_magic_crypt, MagicCryptTrait};
let mc = new_magic_crypt!("magickey", 256);
let base64 = mc.encrypt_str_to_base64("http://magiclen.org");
assert_eq!("DS/2U8royDnJDiNY2ps3f6ZoTbpZo8ZtUGYLGEjwLDQ=", base64);
assert_eq!("http://magiclen.org", mc.decrypt_base64_to_string(&base64).unwrap());
Change the Buffer Size
The default buffer size for the encrypt_reader_to_writer
method and the decrypt_reader_to_writer
method is 4096 bytes. If you want to change that, you can use the encrypt_reader_to_writer2
method or the decrypt_reader_to_writer2
method, and define a length explicitly.
For example, to change the buffer size to 256 bytes,
use std::io::Cursor;
use base64::Engine;
use magic_crypt::{new_magic_crypt, MagicCryptTrait};
use magic_crypt::generic_array::typenum::U256;
let mc = new_magic_crypt!("magickey", 256);
let mut reader = Cursor::new("http://magiclen.org");
let mut writer = Vec::new();
mc.encrypt_reader_to_writer2::<U256>(&mut reader, &mut writer).unwrap();
let base64 = base64::engine::general_purpose::STANDARD.encode(&writer);
assert_eq!("DS/2U8royDnJDiNY2ps3f6ZoTbpZo8ZtUGYLGEjwLDQ=", base64);
assert_eq!("http://magiclen.org", mc.decrypt_base64_to_string(&base64).unwrap());
No Std
Disable the default features to compile this crate without std.
[dependencies.magic-crypt]
version = "*"
default-features = false
Crates.io
https://crates.io/crates/magic-crypt
Documentation
For Java
Refer to https://github.com/magiclen/MagicCrypt.
For PHP
Refer to https://github.com/magiclen/MagicCrypt.
For NodeJS
Refer to https://github.com/magiclen/node-magiccrypt.
License
What's More?
Please check out our web page at
Dependencies
~1.5MB
~26K SLoC