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.
Security Notice
MagicCrypt uses an older encryption design and is not recommended for new projects.
For new applications, please use a modern library that supports authenticated encryption. Authenticated encryption can protect encrypted data from both reading and unauthorized changes.
For Rust
Migrating from 5.x to 6.0
Version 6.0 requires Rust 1.89 or later.
MagicCryptError::Base64Error and From<base64::DecodeError> now use base64 0.23.
If your code uses base64::DecodeError with this library, update your direct base64 dependency to 0.23.1.
Update matches from DecodeError::InvalidLastSymbol(_, _) to DecodeError::InvalidLastSymbol { .. }.
Example
use ;
let mc = new_magic_crypt!;
let base64 = mc.encrypt_str_to_base64;
assert_eq!;
assert_eq!;
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 Cursor;
use Engine;
use ;
use U256;
let mc = new_magic_crypt!;
let mut reader = new;
let mut writer = Vecnew;
mc..unwrap;
let base64 = STANDARD.encode;
assert_eq!;
assert_eq!;
No Std
Disable the default features to compile this crate without std.
[]
= "*"
= 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