2 unstable releases

0.2.0 Feb 8, 2020
0.1.0 Aug 24, 2019

#1455 in Cryptography

MPL-2.0 license

10KB
148 lines

Marysue™ Encoding

  • Encoding: UTF8 -> GB18030 -> BitXor -> BitXor -> BaseMap
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.

Dependencies

~4MB
~134K SLoC