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 :(
[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) 2010-02-23 11:14:48
kaka 2010-02-24 10:40:39
Tra loi
cóc 2010-02-24 11:27:02
Tra loi
w2art 2010-02-24 12:07:49
Tra loi
TG 2010-02-24 03:34:42
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
Tra loi
kaka 2010-02-25 11:18:17
Tra loi
Y kien