RC4 加密算法解密

本文将演示如何使用 RC4 加密算法进行解密。

代码示例:

function(t, e) {
    for (var n = [], r = 0, i = "", o = "", a = 0; a < 256; a++)
        n[a] = a;
    for (var s = 0; s < 256; s++)
        r = (r + n[s] + e.charCodeAt(s % e.length)) % 256,
        i = n[s],
        n[s] = n[r],
        n[r] = i;
    var c = 0;
    r = 0;
    for (var d = 0; d < t.length; d++)
        c = (c + 1) % 256,
        r = (r + n[c]) % 256,
        i = n[c],
        n[c] = n[r],
        n[r] = i,
        o += String.fromCharCode(t.charCodeAt(d) ^ n[(n[c] + n[r]) % 256]);
    return o
}

t=17630733570,e=7FED2719FC7E4D5602FB1D9D11AFA01B

运算一下

function(o) {
    var e, n, r, i, o, a, s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    r = t.length,
    n = 0,
    e = "";
    while (n < r) {
        if (i = 255 & t.charCodeAt(n++),
        n === r) {
            e += s.charAt(i >> 2),
            e += s.charAt((3 & i) << 4),
            e += "==";
            break
        }
        if (o = t.charCodeAt(n++),
        n === r) {
            e += s.charAt(i >> 2),
            e += s.charAt((3 & i) << 4 | (240 & o) >> 4),
            e += s.charAt((15 & o) << 2),
            e += "=";
            break
        }
        a = t.charCodeAt(n++),
        e += s.charAt(i >> 2),
        e += s.charAt((3 & i) << 4 | (240 & o) >> 4),
        e += s.charAt((15 & o) << 2 | (192 & a) >> 6),
        e += s.charAt(63 & a)
    }
    return e
}

o为上面运算的结果,算出e

**解密结果:**

e='YeCnBXYs5ZiS9F7aF5Lm3A=='
RC4 加密算法解密 - 解密 'YeCnBXYs5ZiS9F7aF5Lm3A=='

原文地址: https://www.cveoy.top/t/topic/o4ut 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录