Rust Encryption

Rust Encryption

Rust targets systems programming with memory safety and zero-cost abstractions—think CLIs, web servers, game engines, and anything that used to be C++’s job. Release builds are native binaries or WASM blobs; strip symbols all you like, static UTF-8 data remains visible.

Feature flags, licence blobs, and third-party API endpoints often live as &str constants while you iterate. StringEncrypt emits Rust that decrypts into those values when you need them, which beats advertising secrets in cleartext inside a release folder.

String encryption supports both UNICODE and ANSI strings.

Official resources:

Rust Encryption (UNICODE Example)

Plaintext reference: StringEncrypt sample

// encrypted with https://www.stringencrypt.com (v1.5.0) [Rust]
// myString = "StringEncrypt sample"
let mut MNelB: [u16; 21] = [ 0x63CA, 0x51C7, 0x7EC9, 0x50E7, 0x770B, 0xA810, 0xB775, 0x79E6,
                             0xFEFD, 0x7B52, 0xA964, 0x9E3B, 0x8087, 0xBD5F, 0xB9EB, 0x309E,
                             0xED1E, 0x595F, 0x6D6C, 0xB191, 0x0455 ];

let mut tPnFM: u16 = 0;
for dCkFp in 0..21
{
    tPnFM = MNelB[dCkFp];
    for EURzJ in 0..4
    {
        for wGMxz in 0..4
        {
            for ogEfq in 0..4
            {
                tPnFM = (tPnFM ^ 0x6577) & 0xFFFF;
                tPnFM = (tPnFM & 0xFFFF).wrapping_add(dCkFp as u16) & 0xFFFF;
            }
        }
        tPnFM = (tPnFM ^ (dCkFp as u16)) & 0xFFFF;
    }
    for UxeMD in 0..3
    {
        tPnFM = (tPnFM & 0xFFFF).wrapping_add(dCkFp as u16) & 0xFFFF;
        tPnFM = (tPnFM ^ ((tPnFM & 0xFFFF).wrapping_shr((15u32) & 15))) & 0xFFFF;
    }
    for hcXVP in 0..4
    {
        for GEAgx in 0..3
        {
            for hLOjf in 0..4
            {
                tPnFM = (tPnFM ^ (((tPnFM & 0xFFFF).wrapping_shl((12u32) & 15)) & 0xFFFF)) & 0xFFFF;
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shr((9u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shl((16u32).wrapping_sub((9u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
            }
        }
        for WFNML in 0..4
        {
            tPnFM = (tPnFM & 0xFFFF).wrapping_add(dCkFp as u16) & 0xFFFF;
            for AOHfQ in 0..3
            {
                tPnFM = ((tPnFM ^ 0xFFFF).wrapping_add(1)) & 0xFFFF;
                tPnFM = (tPnFM ^ (((tPnFM & 0xFFFF).wrapping_shl((15u32) & 15)) & 0xFFFF)) & 0xFFFF;
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((8u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((8u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
            }
            tPnFM = (tPnFM ^ 0xC195) & 0xFFFF;
        }
        for wWjYc in 0..4
        {
            tPnFM = (tPnFM & 0xFFFF).wrapping_sub(dCkFp as u16) & 0xFFFF;
            tPnFM = (tPnFM & 0xFFFF).wrapping_sub(0x3E0E) & 0xFFFF;
        }
    }
    tPnFM = (tPnFM ^ ((tPnFM & 0xFFFF).wrapping_shr((11u32) & 15))) & 0xFFFF;
    for dDNBe in 0..2
    {
        for mQeYf in 0..3
        {
            tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((6u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((6u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
        }
        tPnFM = (tPnFM ^ 0xFFFF) & 0xFFFF;
    }
    tPnFM = (tPnFM ^ ((tPnFM & 0xFFFF).wrapping_shr((8u32) & 15))) & 0xFFFF;
    for vixYE in 0..2
    {
        tPnFM = (tPnFM & 0xFFFF).wrapping_sub(0x4B0C) & 0xFFFF;
        tPnFM = (tPnFM ^ (((tPnFM & 0xFFFF).wrapping_shl((9u32) & 15)) & 0xFFFF)) & 0xFFFF;
    }
    for kXWKy in 0..2
    {
        tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((dCkFp as u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((dCkFp as u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
        for bakcz in 0..3
        {
            for DAsCZ in 0..3
            {
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((5u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((5u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
                tPnFM = (tPnFM & 0xFFFF).wrapping_sub(0x991D) & 0xFFFF;
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((dCkFp as u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((dCkFp as u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
            }
            for DBSGX in 0..3
            {
                tPnFM = (tPnFM ^ 0xBA16) & 0xFFFF;
                tPnFM = (tPnFM ^ (dCkFp as u16)) & 0xFFFF;
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shl((10u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shr((16u32).wrapping_sub((10u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
            }
        }
        tPnFM = (tPnFM & 0xFFFF).wrapping_add(0x908A) & 0xFFFF;
    }
    for gODih in 0..3
    {
        for zBAVQ in 0..3
        {
            for UfKNt in 0..4
            {
                tPnFM = (((tPnFM & 0xFFFF) >> 8) | ((tPnFM & 0xFFFF) << 8)) & 0xFFFF;
            }
            for PKnEm in 0..2
            {
                tPnFM = ((tPnFM & 0xFFFF).wrapping_shr((dCkFp as u32) % 16u32) | (tPnFM & 0xFFFF).wrapping_shl((16u32).wrapping_sub((dCkFp as u32) % 16u32).wrapping_rem(16u32))) & 0xFFFF;
                tPnFM = (tPnFM & 0xFFFF).wrapping_add(0xEA6F) & 0xFFFF;
                tPnFM = (tPnFM & 0xFFFF).wrapping_add(1) & 0xFFFF;
            }
        }
    }
    for erfnh in 0..2
    {
        tPnFM = (tPnFM ^ ((tPnFM & 0xFFFF).wrapping_shr((11u32) & 15))) & 0xFFFF;
        tPnFM = (((tPnFM & 0xFFFF) >> 8) | ((tPnFM & 0xFFFF) << 8)) & 0xFFFF;
        tPnFM = (tPnFM ^ 0xFFFF) & 0xFFFF;
    }
    tPnFM = (tPnFM & 0xFFFF).wrapping_sub(dCkFp as u16) & 0xFFFF;
    tPnFM = (tPnFM ^ (((tPnFM & 0xFFFF).wrapping_shl((9u32) & 15)) & 0xFFFF)) & 0xFFFF;
    for Ydfky in 0..3
    {
        for ycdfw in 0..2
        {
            for rSYlN in 0..3
            {
                tPnFM = (tPnFM ^ 0x7BF0) & 0xFFFF;
            }
            tPnFM = (tPnFM & 0xFFFF).wrapping_sub(0xB815) & 0xFFFF;
        }
        tPnFM = (tPnFM ^ (((tPnFM & 0xFFFF).wrapping_shl((15u32) & 15)) & 0xFFFF)) & 0xFFFF;
    }
    tPnFM = (tPnFM & 0xFFFF).wrapping_add(0x729A) & 0xFFFF;
    MNelB[dCkFp] = tPnFM;
}
let myString = String::from_utf16_lossy(&MNelB[..]);

Rust Encryption (ANSI Example)

Plaintext reference: StringEncrypt sample

// encrypted with https://www.stringencrypt.com (v1.5.0) [Rust]
// myString = "StringEncrypt sample"
let mut HMSIs: [u8; 21] = [ 0x84, 0xB0, 0xB9, 0x5C, 0xEA, 0x36, 0x07, 0x52,
                            0x2A, 0x94, 0xBE, 0xC1, 0xE9, 0xBD, 0xA4, 0x0C,
                            0x74, 0x2F, 0x16, 0xB1, 0x32 ];

let mut DIhsl: u8 = 0;
for prnxb in 0..21
{
    DIhsl = HMSIs[prnxb];
    for UptlT in 0..4
    {
        DIhsl = (DIhsl ^ 0xFF) & 0xFF;
    }
    for SKTEu in 0..4
    {
        for PAhtu in 0..4
        {
            for WlrBb in 0..3
            {
                DIhsl = ((DIhsl & 0xFF).wrapping_shl((6u32) % 8u32) | (DIhsl & 0xFF).wrapping_shr((8u32).wrapping_sub((6u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
            }
            DIhsl = (DIhsl ^ (prnxb as u8)) & 0xFF;
        }
    }
    for sLVqZ in 0..3
    {
        DIhsl = (DIhsl & 0xFF).wrapping_add(prnxb as u8) & 0xFF;
        for YxKUn in 0..3
        {
            DIhsl = ((DIhsl & 0xFF).wrapping_shr((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
        }
        for gIuRp in 0..4
        {
            for IyaEm in 0..3
            {
                DIhsl = (DIhsl ^ 0xFF) & 0xFF;
                DIhsl = (DIhsl & 0xFF).wrapping_sub(prnxb as u8) & 0xFF;
                DIhsl = (DIhsl & 0xFF).wrapping_sub(0x49) & 0xFF;
            }
            for banhK in 0..3
            {
                DIhsl = (DIhsl & 0xFF).wrapping_add(prnxb as u8) & 0xFF;
                DIhsl = ((DIhsl & 0xFF).wrapping_shr((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
                DIhsl = (DIhsl ^ (prnxb as u8)) & 0xFF;
            }
        }
    }
    DIhsl = ((DIhsl & 0xFF).wrapping_shl((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shr((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
    DIhsl = (DIhsl & 0xFF).wrapping_add(0x81) & 0xFF;
    DIhsl = (DIhsl ^ (prnxb as u8)) & 0xFF;
    DIhsl = (DIhsl & 0xFF).wrapping_add(1) & 0xFF;
    DIhsl = ((DIhsl & 0xFF).wrapping_shl((5u32) % 8u32) | (DIhsl & 0xFF).wrapping_shr((8u32).wrapping_sub((5u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
    DIhsl = (DIhsl & 0xFF).wrapping_sub(prnxb as u8) & 0xFF;
    DIhsl = ((DIhsl ^ 0xFF).wrapping_add(1)) & 0xFF;
    for CZBAX in 0..3
    {
        DIhsl = (DIhsl ^ ((DIhsl & 0xFF).wrapping_shr((4u32) & 7))) & 0xFF;
        for PiCcm in 0..3
        {
            DIhsl = (DIhsl & 0xFF).wrapping_add(1) & 0xFF;
            for oPaEL in 0..2
            {
                DIhsl = (DIhsl & 0xFF).wrapping_sub(1) & 0xFF;
                DIhsl = ((DIhsl & 0xFF).wrapping_shr((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
                DIhsl = (DIhsl ^ ((DIhsl & 0xFF).wrapping_shr((4u32) & 7))) & 0xFF;
            }
            DIhsl = ((DIhsl & 0xFF).wrapping_shr((1u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((1u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
        }
        for CmZED in 0..3
        {
            DIhsl = (DIhsl & 0xFF).wrapping_sub(1) & 0xFF;
            DIhsl = (DIhsl & 0xFF).wrapping_add(prnxb as u8) & 0xFF;
        }
    }
    for EIAqQ in 0..3
    {
        for BpTQS in 0..3
        {
            DIhsl = ((DIhsl & 0xFF).wrapping_shl((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shr((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
            for FRfDU in 0..4
            {
                DIhsl = ((DIhsl & 0xFF).wrapping_shr((1u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((1u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
                DIhsl = (DIhsl & 0xFF).wrapping_sub(0xBE) & 0xFF;
                DIhsl = ((DIhsl & 0xFF).wrapping_shr((prnxb as u32) % 8u32) | (DIhsl & 0xFF).wrapping_shl((8u32).wrapping_sub((prnxb as u32) % 8u32).wrapping_rem(8u32))) & 0xFF;
            }
            for lOnyE in 0..2
            {
                DIhsl = (DIhsl & 0xFF).wrapping_sub(0xE6) & 0xFF;
                DIhsl = (DIhsl ^ ((DIhsl & 0xFF).wrapping_shr((6u32) & 7))) & 0xFF;
                DIhsl = (DIhsl ^ (((DIhsl & 0xFF).wrapping_shl((4u32) & 7)) & 0xFF)) & 0xFF;
            }
        }
        DIhsl = (DIhsl & 0xFF).wrapping_sub(prnxb as u8) & 0xFF;
    }
    DIhsl = (DIhsl ^ 0xFF) & 0xFF;
    DIhsl = (DIhsl & 0xFF).wrapping_sub(0x5E) & 0xFF;
    HMSIs[prnxb] = DIhsl;
}
let myString = String::from_utf8_lossy(&HMSIs[..]).into_owned();