Crates.io | rpgm-asset-decrypter-lib |
lib.rs | rpgm-asset-decrypter-lib |
version | 2.1.0 |
created_at | 2025-03-18 13:15:37.947378+00 |
updated_at | 2025-07-19 19:20:30.651252+00 |
description | A library for decrypting/encrypting RPG Maker MV/MZ audio and image assets. |
homepage | |
repository | https://github.com/savannstm/rpgm-asset-decrypter-lib |
max_upload_size | |
id | 1596569 |
size | 87,838 |
A library for decrypting/encrypting RPG Maker MV/MZ audio and image assets.
Used in rpgm-asset-decrypter-rs CLI tool.
cargo add rpgm-asset-decrypter-lib
Decrypt:
use rpgm_asset_decrypter_lib::Decrypter;
use std::fs::{read, write};
let mut decrypter = Decrypter::new();
let file = "./picture.rpgmvp";
let buf = read(file).unwrap();
// For images, decrypter automatically determines the key.
// For audio, read `encryptionKey` property from `System.json` and pass it to `Decrypter::set_key_from_str` function.
let decrypted = decrypter.decrypt(&buf);
write("./decrypted-pitcure.png", decrypted).unwrap();
Encrypt:
use rpgm_asset_decrypter_lib::{Decrypter, DEFAULT_KEY};
use std::fs::{read, write};
// When encrypting, decrypter requires a key.
// It can be read from `encryptionKey` property in `System.json`.
let mut decrypter = Decrypter::new();
// The library provides default key, which most games use by default.
// It might not work for every game, so if you get bad output, grab the right one from `System.json`.
decrypter.set_key_from_str(DEFAULT_KEY).unwrap();
let file = "./picture.png";
let buf = read(file).unwrap();
let encrypted = decrypter.encrypt(&buf).unwrap();
write("./decrypted-pitcure.rpgmvp", encrypted).unwrap();
Project is licensed under WTFPL.