Giúp mình viết hàm decode chuỗi ( chuỗi mã hóa bằng hàm javascript ) 2010-02-23 11:14:48

Đây là hàm encode string, hàm này chạy với jquery.
[CODE]
function encode($string)
{
var one=new Array([1,1,1],[1,0,1],[1,0,0],[0,0,1]);
var zero=new Array([0,1,0],[1,1,0],[0,1,1],[0,1,0],[0,0,0]);
var a=new Array();
var b=new Array();
var c=new Array();
var i;
for($i=0;$i<$string.length;$i++)
a[$i]=$string.charAt($i);
for($i=0;$i<a.length;$i++)
a[$i]=a[$i].charCodeAt(0);
for($i=0;$i<a.length;$i++)
{
b[$i]=new Array();
$j=0;
while(a[$i])
{
b[$i][$j++]=a[$i]%2;
a[$i]=parseInt(a[$i]/2);
}
if($j<8)
for($k=$j;$k<8;$k++)
b[$i][$k]=0;
}
for($i=0;$i<b.length;$i++)
for($j=0;$j<8;$j++)
b[$i][$j]=(b[$i][$j]==0)?(zero[(parseInt(Math.random()*10))%5]):(one[(parseInt(Math.random()*10))%4]);
var l=b.length;
for($j=0;$j<8;$j++)
for($k=0;$k<3;$k++)
for($i=0;$i<l;$i++)
c[$k*l+$i+$j*3*l]=b[$i][$j][$k];
var fString="";
for($i=0;$i<l*3;$i++)
{
var a=0;
for($j=0;$j<8;$j++)
a+=c[$j+$i*8]*exp(2,$j);
fString+="|"+a;
}
return fString;
}
[/CODE]

Ví dụ: có từ: w2art mã hóa với hàm trên sẽ được

"|197|148|68|85|118|21|114|34|201|251|226|114|83|196|13"

Mình muốn viết 1 hàm php để decode chuỗi trên ngược lại nhưng mà khó quá, không biết đường nào mà lần. Bạn nào pro có thể giúp mình với. Mình đang cần gấp, hic :(

Tra loi 6 comment(s) w2art 2010-02-23 11:14:48

kaka 2010-02-24 10:40:39

cái này thì bó chiếu luôn

Tra loi

cóc 2010-02-24 11:27:02

Vậy có cái hàm decode = javascript hok, dựa vào đó build lại php.

Tra loi

w2art 2010-02-24 12:07:49

híc nếu có hàm deocde thì mình viết lại rồi. híc. Nhìn cái đống trên thấy hoa cả mắt

Tra loi

TG 2010-02-24 03:34:42

Hàm này là hàm mã hóa không đối xứng nên không giải mã được, khỏi viết mắc công. chỉ riêng chổ này:

a[$i]=parseInt(a[$i]/2);

là không giải mã  được rồi

Giả sử a[$i] (bên trái) kết quả là 5 đi thì a[$i] (bên phải) lúc đầu cũng có thể là 10,11

Tra loi

choncon 2010-02-24 08:07:30

bun cuoi quá ------------

Tra loi

kaka 2010-02-25 11:18:17

bác TG nói thế thì ae đừng có mất công nữa

Tra loi

Y kien