[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: найти алгоритм шифрования по таким критериям
Страницы: 1, 2
tetetz
имееться некий ключ, некая строка, на выходе получаем строку 32 символа в hex'е


ключ - 1244201195.28292 (может быть 1244201195 или 28292 думаю:)
пароль - 1111
на выходе - 23DEE2845DFB629D7973E527A8A505EC

какие алгоритмы шифрования такое могут проделать ? )

спасибо )
Joker
а тебе нужно чтоб обратно можно было раскодировать?
sergeiss
md5 может. Как раз 32 символа выдает. Только этому алгоритму нужно передать одну строку, которая непонятно как сформирована из твоих данных.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
tetetz
Цитата
а тебе нужно чтоб обратно можно было раскодировать?

мне нужно имея ключ и пароль, сгенерить такую строку smile.gif обратно мне не нужно )
tetetz
Цитата
md5 может. Как раз 32 символа выдает. Только этому алгоритму нужно передать одну строку, которая непонятно как сформирована из твоих данных.

всмысле не понятного ?

а вообще я пробовал и md5($pass.$key); md5(md5($pass.$key)); md5(md5($pass).md5($key)) и ещё куча разновидностей подобных - не получаеться и меня нужный результат (
sergeiss
Цитата (tetetz @ 5.06.2009 - 15:02)
Цитата
md5 может. Как раз 32 символа выдает. Только этому алгоритму нужно передать одну строку, которая непонятно как сформирована из твоих данных.

всмысле не понятного ?

а вообще я пробовал и md5($pass.$key); md5(md5($pass.$key)); md5(md5($pass).md5($key)) и ещё куча разновидностей подобных - не получаеться и меня нужный результат (

Вот в том смысле и не понятно, что как они объединены, эти строки? Я тоже попробовал разные варианты smile.gif И с пробелом между строками, и без проблелов, и в обратном порядка с пробелами и без них...

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
tetetz
вот так:
ключ - 1244201195.28292 (может быть 1244201195 или 28292 думаю:)
пароль - 1111
на выходе - 23DEE2845DFB629D7973E527A8A505EC
tetetz
мне начинает казаться, что мд5 тут вообще не при делах )
tetetz
кто даст алгоритм тому 100 вмр дам )
Joker
Дак тебе раскодировать надо! ясно... так и скажи что где то кодируеться таким способом... и тебе нужно понять как также закодировать в точности.

ну я покрайнемере так понел твою задачу
Alchemist
md5 тут может вполне быть причем, просто для защиты от таких вот "умников" знающие люди используют либо многократное хэширование, либо добавляют "соль", либо защищают хэш любым другим из множества доступных способов...
tetetz
я нашел исходник этого всего дела на actionscript!
кто разгребет все это дело и приведет в более читабельный вид на PHP либо Perl - то даю тому 100 вмр smile.gif))
нужен только алгоритм КАК шифруеться пароль! больше ничего не надо )

encrypt - я так понимаю начинаеться это все тут smile.gif

Цитата

// Action script...

// [Action in Frame 1]
if (_root.getBytesLoaded() < _root.getBytesTotal())
{
    gotoAndPlay(1);
} // end if

// [Action in Frame 2]
getURL("FSCommand:allowscale", 0);
Stage.showMenu = false;
wire._visible = false;
wire._x = 0;
wire._y = 0;
wire._alpha = 0;
SecretCode = 1;
EnteredCode = 0;
CodeWord = "";
CodeWord2 = "";
CodeLength = 8;
cs = new Array(360);
sn = new Array(360);
for (i = -180; i <= 180; i++)
{
    cs[i + 180] = Math.cos(i * 3.141593E+000 / 180);
    sn[i + 180] = Math.sin(i * 3.141593E+000 / 180);
} // end of for

// [Action in Frame 34]
fov = 380;
if (_root.SecretCode == 1)
{
    Calc.Dinamic._visible = false;
    Calc.Dinamic2._visible = true;
}
else
{
    Calc.Dinamic2._visible = false;
    Calc.Dinamic._visible = true;
} // end else if
do
{
    rotx = random(6) * (1 - random(2));
    roty = random(6) * (1 - random(2));
} while (int(rotx) == 0 || int(roty) == 0 || int(rotx) == int(roty))
aaa = int(random(3.900000E+000));
if (aaa == 3)
{
    gotoAndPlay(37);
} // end if
if (aaa == 2)
{
    gotoAndPlay(36);
} // end if
if (aaa == 1)
{
    gotoAndPlay(35);
} // end if

// [Action in Frame 35]
max = 29;
maxwire = 44;
wdt = new Array(2, 3, 3, 1, 1, 0, 4, 5, 5, 3, 1, 7, 7, 6, 7, 5, 3, 8, 8, 1, 5, 8, 7, 8, 17, 11, 11, 12, 19, 17, 18, 20, 16, 15, 15, 18, 9, 10, 10, 14, 14, 13, 13, 9, 10, 12, 12, 16, 16, 14, 11, 15, 19, 23, 23, 21, 24, 20, 22, 24, 19, 9, 13, 20, 25, 27, 27, 28, 21, 22, 17, 21, 22, 18, 28, 26, 26, 25, 24, 23, 23, 27, 25, 21, 22, 26, 28, 24);
v = new Array(6.041550E+001, 1.014490E+001, 0, -9.958450E+001, 1.014490E+001, 0, 6.041550E+001, 1.144900E+000, -3, -1.013861E+002, 1.144900E+000, -3, 6.041550E+001, -7.855100E+000, 0, -9.958450E+001, -7.855100E+000, 0, 6.041550E+001, 1.144900E+000, 3, -1.013861E+002, 1.144900E+000, 3, -1.199034E+002, 1.144900E+000, -1.700000E-002, 7.010580E+001, 2.614490E+001, -4, 6.041550E+001, 2.614490E+001, -4, 7.010580E+001, -2.385510E+001, -4, 6.041550E+001, -2.385510E+001, -4, 7.010580E+001, 2.614490E+001, 4, 6.041550E+001, 2.614490E+001, 4, 7.010580E+001, -2.385510E+001, 4, 6.041550E+001, -2.385510E+001, 4, 6.402140E+001, -7.851900E+000, -4, 6.402140E+001, -7.859100E+000, 4, 6.402140E+001, 1.016350E+001, -4, 6.402140E+001, 1.016640E+001, 4, 6.841550E+001, -2.895900E+000, -3.738200E+000, 6.841550E+001, -2.895900E+000, 3.814900E+000, 6.841550E+001, 4.600200E+000, -3.728300E+000, 6.841550E+001, 4.600200E+000, 3.846600E+000, 1.346504E+002, -2.895900E+000, -3.738200E+000, 1.346504E+002, -2.895900E+000, 3.814900E+000, 1.346504E+002, 4.600200E+000, -3.728300E+000, 1.346504E+002, 4.600200E+000, 3.846600E+000);
gotoAndPlay(38);

// [Action in Frame 36]
max = 31;
maxwire = 47;
wdt = new Array(0, 1, 15, 14, 1, 2, 2, 16, 16, 15, 3, 4, 18, 17, 17, 3, 4, 5, 5, 18, 5, 6, 19, 5, 6, 7, 7, 20, 20, 19, 7, 8, 8, 21, 21, 20, 8, 9, 9, 22, 22, 21, 9, 10, 10, 22, 13, 0, 14, 13, 13, 12, 12, 11, 11, 10, 9, 1, 3, 7, 3, 2, 8, 2, 20, 17, 16, 17, 21, 16, 30, 29, 28, 30, 27, 28, 29, 27, 2, 23, 25, 16, 17, 26, 24, 3, 25, 29, 30, 26, 28, 24, 27, 23);
v = new Array(7.045760E+001, 2.114630E+001, -9.003000E-001, 7.472950E+001, 1.174800E+001, -3.294400E+000, 6.789440E+001, 2.791800E+000, -6.614600E+000, 6.789440E+001, -8.711100E+000, -6.614600E+000, 7.484900E+001, -1.827360E+001, -3.294400E+000, 6.917600E+001, -3.481670E+001, 0, 7.985590E+001, -2.029190E+001, -3.294400E+000, 8.919080E+001, -5.742200E+000, -6.614600E+000, 8.925430E+001, 2.776800E+000, -6.614600E+000, 8.498230E+001, 1.003920E+001, -3.294400E+000, 8.754550E+001, 3.481670E+001, 0, 6.063200E+001, 3.396230E+001, 0, 3.628170E+001, 2.370950E+001, 0, 2.432020E+001, 1.046640E+001, 0, 7.045760E+001, 2.114630E+001, 9.003000E-001, 7.472950E+001, 1.174800E+001, 3.294400E+000, 6.789440E+001, 2.791800E+000, 6.614600E+000, 6.789440E+001, -8.711100E+000, 6.614600E+000, 7.484900E+001, -1.827360E+001, 3.294400E+000, 7.985590E+001, -2.029190E+001, 3.294400E+000, 8.919080E+001, -5.742200E+000, 6.614600E+000, 8.925430E+001, 2.776800E+000, 6.614600E+000, 8.498230E+001, 1.003920E+001, 3.294400E+000, 6.450880E+001, 6.572000E-001, -4.159700E+000, 6.450880E+001, -6.576500E+000, -4.159700E+000, 6.450880E+001, 6.572000E-001, 4.159700E+000, 6.450880E+001, -6.576500E+000, 4.159700E+000, -8.925430E+001, 6.572000E-001, -4.159700E+000, -8.925430E+001, -6.576500E+000, -4.159700E+000, -8.925430E+001, 6.572000E-001, 4.159700E+000, -8.925430E+001, -6.576500E+000, 4.159700E+000);
gotoAndPlay(38);

// [Action in Frame 37]
max = 40;
maxwire = 60;
wdt = new Array(24, 23, 23, 3, 3, 4, 4, 24, 4, 5, 25, 24, 26, 25, 5, 6, 6, 26, 6, 7, 7, 27, 27, 26, 28, 27, 7, 8, 29, 28, 8, 9, 9, 29, 9, 10, 30, 29, 10, 11, 11, 31, 31, 30, 11, 12, 12, 32, 32, 31, 12, 13, 33, 32, 13, 14, 14, 34, 34, 33, 14, 15, 15, 35, 35, 34, 36, 35, 15, 16, 16, 36, 16, 17, 17, 37, 37, 36, 17, 18, 38, 37, 39, 38, 19, 39, 18, 19, 20, 39, 19, 0, 21, 20, 0, 1, 1, 21, 22, 21, 1, 2, 2, 22, 23, 22, 2, 3, 19, 9, 1, 4, 17, 14, 39, 29, 21, 24, 34, 37);
v = new Array(8.350260E+001, 5.269800E+000, -2.475110E+001, 5.554100E+001, -4.692000E+000, -6.430130E+001, 2.650390E+001, -1.096280E+001, -7.915890E+001, -3.372120E+001, -1.189510E+001, -8.109720E+001, -4.017390E+001, -4.692000E+000, -6.430130E+001, -5.630560E+001, -9.208000E-001, -5.309070E+001, -9.071990E+001, -3.118000E-001, -5.102780E+001, -9.103070E+001, 6.345600E+000, -1.513310E+001, -8.319170E+001, 6.663500E+000, -1.084320E+001, -7.781450E+001, 7.025200E+000, -6.620000E-002, -8.319170E+001, 6.764200E+000, 1.071380E+001, -9.103070E+001, 6.486500E+000, 1.500650E+001, -9.071990E+001, 1.649000E-001, 5.096180E+001, -5.630560E+001, -4.248000E-001, 5.303030E+001, -4.017390E+001, -4.091000E+000, 6.427570E+001, -3.372120E+001, -1.113680E+001, 8.113820E+001, 2.650390E+001, -1.022270E+001, 7.919120E+001, 5.554100E+001, -4.091000E+000, 6.427570E+001, 8.350260E+001, 5.500600E+000, 2.463410E+001, 9.103070E+001, 7.025200E+000, -6.620000E-002, 8.350260E+001, 1.009390E+001, -2.541770E+001, 5.554100E+001, -1.277000E-001, -6.599950E+001, 2.650390E+001, -6.562000E+000, -8.124450E+001, -3.372120E+001, -7.518700E+000, -8.323340E+001, -4.017390E+001, -1.277000E-001, -6.599950E+001, -5.630560E+001, 3.741900E+000, -5.449640E+001, -9.071990E+001, 4.366800E+000, -5.237980E+001, -9.103070E+001, 1.119790E+001, -1.554890E+001, -8.319170E+001, 1.152400E+001, -1.114710E+001, -7.781450E+001, 1.189520E+001, -8.890000E-002, -8.319170E+001, 1.162740E+001, 1.097220E+001, -9.103070E+001, 1.134240E+001, 1.537690E+001, -9.071990E+001, 4.855900E+000, 5.227000E+001, -5.630560E+001, 4.250800E+000, 5.439240E+001, -4.017390E+001, 4.890000E-001, 6.593110E+001, -3.372120E+001, -6.740600E+000, 8.323340E+001, 2.650390E+001, -5.802600E+000, 8.123570E+001, 5.554100E+001, 4.890000E-001, 6.593110E+001, 8.350260E+001, 1.033080E+001, 2.525560E+001, 9.103070E+001, 1.189510E+001, -8.890000E-002);

// [Action in Frame 38]
pr = 0;
vt = new Array(max * 3);
w = new Array(maxwire);
for (n = 0; n < maxwire; n++)
{
    wire.duplicateMovieClip("w" add n, n);
    w[n] = eval("w" add n);
    w[n].p1 = wdt[n * 2];
    w[n].p2 = wdt[n * 2 + 1];
} // end of for
rotx2 = int(random(350));
roty2 = int(random(350));
for (n = 0; n < max * 3; n = n + 3)
{
    tz = v[n + 2];
    ty = v[n + 1];
    v[n + 2] = tz * cs[rotx2] - ty * sn[rotx2];
    v[n + 1] = ty * cs[rotx2] + tz * sn[rotx2];
    tx = v[n];
    tz = v[n + 2];
    v[n] = tx * cs[roty2] - tz * sn[roty2];
    v[n + 2] = tz * cs[roty2] + tx * sn[roty2];
    v[n] = v[n] / 1.400000E+000;
    v[n + 1] = v[n + 1] / 1.400000E+000;
    v[n + 2] = v[n + 2] / 1.400000E+000 - 10;
} // end of for

// [Action in Frame 39]
++pr;
if (pr >= 300 || EnteredCode == 1)
{
    gotoAndPlay(43);
} // end if
rotx2 = int(rotx) + 180;
roty2 = int(roty) + 180;

// [Action in Frame 40]
for (n = 0; n < max * 3; n = n + 3)
{
    tz = v[n + 2];
    ty = v[n + 1];
    v[n + 2] = tz * cs[rotx2] - ty * sn[rotx2];
    v[n + 1] = ty * cs[rotx2] + tz * sn[rotx2];
    tx = v[n];
    tz = v[n + 2];
    v[n] = tx * cs[roty2] - tz * sn[roty2];
    v[n + 2] = tz * cs[roty2] + tx * sn[roty2];
    k = _root.fov / (_root.fov - v[n + 2]);
    vt[n] = 80 + v[n] * k;
    vt[n + 1] = 110 + v[n + 1] * k;
    vt[n + 2] = 80 * k;
} // end of for
rotx = rotx * 9.970000E-001;
roty = roty * 1.003000E+000;

// [Action in Frame 41]
for (n = 0; n < maxwire; n++)
{
    w[n]._x = vt[w[n].p1 * 3];
    w[n]._y = vt[w[n].p1 * 3 + 1];
    w[n]._xscale = vt[w[n].p2 * 3] - vt[w[n].p1 * 3];
    w[n]._yscale = vt[w[n].p2 * 3 + 1] - vt[w[n].p1 * 3 + 1];
    alpha = vt[w[n].p1 * 3 + 2] + vt[w[n].p2 * 3 + 2] / 2;
    if (pr > 0 && pr < 40)
    {
        alpha = alpha * (pr * 100 / 40) / 100;
    } // end if
    if (pr > 260 && pr < 300)
    {
        alpha = alpha * ((300 - pr) * 100 / 40) / 100;
    } // end if
    w[n]._alpha = alpha;
} // end of for

// [Action in Frame 42]
gotoAndPlay(39);

// [Action in Frame 43]
for (n = 0; n < maxwire; n++)
{
    w[n]._visible = false;
    w[n].removeMovieClip();
} // end of for
if (_root.EnteredCode == 0)
{
    gotoAndPlay(34);
}
else
{
    gotoAndPlay(44);
} // end else if

// [Action in Frame 77]
function rijndael(src, ikey)
{
    sBox = new Array(99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 200, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 50, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22);
    rCon = new Array(1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108);
    w = new Array(176);
    tar = new Array(16);
    b = new Array(4);
    var i = 0;
    var j = 0;
    var k = 0;
    var l = 0;
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            w[i * 4 + j] = ikey[i * 4 + j];
        } // end of for
    } // end of for
    for (i = 1; i < 11; i++)
    {
        for (j = 0; j < 4; j++)
        {
            for (k = 0; k < 4; k++)
            {
                b[k] = w[(i - (j == 0) ? (1) : (0)) * 16 + k * 4 + (j == 0 ? (3) : (j - 1))];
            } // end of for
            if (j == 0)
            {
                for (k = 0; k < 4; k++)
                {
                    if (k < 3)
                    {
                        b[k] = sBox[b[k + 1]];
                        continue;
                    } // end if
                    b[k] = sBox[0] ^ rCon[i];
                } // end of for
            } // end if
            for (k = 0; k < 4; k++)
            {
                w[i * 16 + k * 4 + j] = w[(i - 1) * 16 + k * 4 + j] ^ b[k];
            } // end of for
        } // end of for
    } // end of for
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            tar[i * 4 + j] = src[i * 4 + j] ^ w[i * 4 + j];
        } // end of for
    } // end of for
    for (i = 1; i < 4; i++)
    {
        for (l = 0; l < i; l++)
        {
            tmp = tar[i * 4];
            for (j = 0; j < 3; j++)
            {
                tar[i * 4 + j] = tar[i * 4 + (j + 1) % 4];
            } // end of for
            tar[i * 4 + 3] = tmp;
        } // end of for
    } // end of for
    if (k != 9)
    {
        for (j = 0; j < 4; j++)
        {
            for (i = 0; i < 4; i++)
            {
                tmp = tar[i * 4 + j] ^ tar[(i + 1) % 4 * 4 + j];
                b[i] = tar[(i + 1) % 4 * 4 + j] ^ tar[(i + 2) % 4 * 4 + j] ^ tar[(i + 3) % 4 * 4 + j] ^ (tmp > 127 ? (tmp << 1 ^ 283) : (tmp << 1));
            } // end of for
            for (i = 0; i < 4; i++)
            {
                tar[i * 4 + j] = b[i];
            } // end of for
        } // end of for
    } // end if
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            tar[i * 4 + j] = tar[i * 4 + j] ^ w[(k + 1) * 16 + i * 4 + j];
        } // end of for
    } // end of for
    return (tar);
} // End of the function
function md5(src)
{
    tar = new Array(16);
    res = new Array(16);
    for (i = 0; i < src.length || i < 16; i++)
    {
        res[i] = Number(src.charCodeAt(i)) ^ i * 4;
    } // end of for
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            tar[i * 4 + j] = (res[j * 4 + i] + 256) % 256;
        } // end of for
    } // end of for
    return (tar);
} // End of the function
function array2HStr(src)
{
    res = "";
    for (i = 0; i < 16; i++)
    {
        res = res + (hex[src[i] >> 4] add hex[src[i] % 16]);
    } // end of for
    return (res);
} // End of the function
function encrypt(plain, pass)
{
    ikey = md5(pass);
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            ikey[i * 4 + j] = ikey[i * 4 + j] ^ initKey[i * 4 + j];
        } // end of for
    } // end of for
    return (array2HStr(rijndael(md5(plain), ikey)));
} // End of the function
initKey = new Array(232, 179, 9, 49, 17, 182, 147, 22, 67, 153, 48, 202, 41, 89, 251, 31);
hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
code = encrypt(r, _root.CodeWord);
myLoadVars = new LoadVars();
myLoadVars.code = code;
myLoadVars.send("/enter.pl", "_self", "POST");
stop ();

// [Action in Frame 78]
for (n = 0; n < maxwire; n++)
{
    w[n]._visible = false;
    w[n].removeMovieClip();
} // end of for
stop ();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.