Documentation
Crypto RandomMap
================

- Encoding: UTF8 -> GB18030 -> BitXor -> BitXor -> BaseMap

```rust
extern crate crypto_marysue;
use crypto_marysue::{decode, encode};

#[test]

fn test_encoding() {
    let input = "力微任重久神疲, 再竭衰庸定不支.";
    let r1 = encode(input);
    let r2 = encode(input);
    debug_assert_ne!(r1, r2)
}

#[test]

fn test_decoding() {
    let secret = "晶凌娅萦弥·琉婷·清梅凝琴妙阳嫩音·淑颖宁凌·淑寇盘陌菁城·烟仪贞纱翠·佳素寂洛姬贞·碎墨";
    let raw = "力微任重久神疲, 再竭衰庸定不支.";
    debug_assert_eq!(decode(secret), raw)
}
```

There are thousands of possibilities in ciphertext, but there is only one corresponding information.

Notice that the version number used for encryption and decryption **must be the same**, because the key will keep expanding.