sincos'blog Logo
Code password cho Folder
Post by: huyphuong119922 25/11/2009 07:56 am
Hi, Lê Bằng
Nhờ cậu code dùm mình password cho folder dùm mình với, pass la "emageviewvn".
Nếu được, nhờ cậu viết 1 tool (1 site php) dùng để code password thì hay quá.
Ths cậu nhiều.
Post by: huyphuong119922 25/11/2009 10:09 am
Site này đơn giản thôi cậu ah:
- Nhập pass
- Site show ra code, vidu: asdsdfewislsjdererodls

Source sau đây hình như là giải thuật cho tool này:

function _Encode($st, $depth)
{
$_return = '';
for($i=0; $i<strlen($st); $i++)
{
$_return.= chr(20 + $depth^ord($st[$i]));
}
return $_return;
}
function Encode($password, $path)
{
$_return = chr(strlen($password) + 36);//Ký tự đầu tiên có mã ascii là chiều dài của password + 36

$depth = rand(1, 10);
$_return.= _Encode($password, $depth);
$_return.= chr(65 + $depth);

$depth = rand(1, 10);
$_return.= _Encode($path, $depth);
$_return.= chr(65 + $depth);

$_return.="*";//Luôn luôn kết thúc = *
return htmlspecialchars($_return);
}
Post by: huyphuong119922 30/11/2009 09:26 am
Để dùng cho enageview3, mình dùng file database.xml với format:

<root path="images" thumbnailpath="thumbnails">
<fo p="1280x1024" d="5" m="2" y="2007">
<fo p="ac3efc34*9fb91721981b4f15e6" n="1600x1200 Images" c="password: test" d="4" m="2" y="2007">
<fi p="01.jpg”/>
<fi p="02.jpg”/>
<fi p="03.jpg”/>
<fi p="04.jpg”/>
<fi p="05.jpg”/>
<fi p="06.jpg”/>
</fo>
</root>

trong đó:
- images: là thư mục chứa các folder gallery
- thumbnails: là thư mục chứa các folder thumbnails

Để có đoạn mã "ac3efc34*9fb91721981b4f15e6" mình dùng 1 file PHP có code như sau:

<?php
function _Encode($st, $depth)
{
$_return = '';
for($i=0; $i<strlen($st); $i++)
{
$_return.= chr(20 + $depth^ord($st[$i]));
}
return $_return;
}


function Encode($password, $path)
{
$_return = chr(strlen($password) + 36);//Ký tự đầu tiên có mã ascii là chiều dài của password + 36

$depth = rand(1, 10);
$_return.= _Encode($password, $depth);
$_return.= chr(65 + $depth);

$depth = rand(1, 10);
$_return.= _Encode($path, $depth);
$_return.= chr(65 + $depth);

$_return.="*";//Luôn luôn kết thúc = *
return htmlspecialchars($_return);
}
if ($_POST['pass']) {
$path = "http://www.domain.com/images";
echo Encode($_POST['pass'],$path);
exit;
}
?>

<form method="post">
Nhập pass:<input type=text name=pass><br>
<input type=submit name=submit id=submit value="ENCODE!"></form>


chạy tool này, nhập pass, click Encode, lấy đoạn code để add vào database.xml cho thư mục muốn tạo pass.
Thế nhưng vẫn không chạy với EmageView 3.

Nhờ Lê Bằng help xem lại code của tool dùm mình nha.
Ths cậu nhiều.
Post by: huyphuong119922 01/12/2009 07:09 pm
package core
{

public class Crypto extends Object
{
private static var mykey:Array = new Array(255);
private static var sbox:Array = new Array(255);

public function Crypto()
{
return;
}// end function

public static function perynate(param1:String, param2:String) : String
{
var _loc_3:* = hexToChars(param1);
var _loc_4:* = strToChars(param2);
var _loc_5:* = calculate(_loc_3, _loc_4);
return charsToStr(_loc_5);
}// end function

private static function charsToHex(param1:Array) : String
{
var _loc_2:String = "";
var _loc_3:Array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
var _loc_4:* = param1.length;
var _loc_5:int = 0;
while (_loc_5 < _loc_4)
{

_loc_2 = _loc_2 + (_loc_3[param1[_loc_5] >> 4] + _loc_3[param1[_loc_5] & 15]);
_loc_5++;
}
return _loc_2;
}// end function

public static function parsePyern(param1:String) : String
{
return param1.substring(0, param1.indexOf("*";
}// end function

private static function hexToChars(param1:String) : Array
{
var _loc_2:Array = [];
var _loc_3:* = param1.length;
var _loc_4:* = param1.substr(0, 2) == "0x" ? (2) : (0);
while (_loc_4 < _loc_3)
{

_loc_2.push(parseInt(param1.substr(_loc_4, 2), 16));
_loc_4 = _loc_4 + 2;
}
return _loc_2;
}// end function

public static function vPyern(param1:String, param2:String) : Boolean
{
return perynate(parsePyern(param1), perynate("08b6e3d994021a5a1d9b4188bfe50e", "45b64da4f4e21c1c77d7eb5b903d9a" == param2;
}// end function

public static function pelynate(param1:String) : String
{
return param1.substring((param1.indexOf("*" + 1), param1.length);
}// end function

public static function perynote(param1:String, param2:String) : String
{
var _loc_3:* = strToChars(param1);
var _loc_4:* = strToChars(param2);
var _loc_5:* = calculate(_loc_3, _loc_4);
return charsToHex(_loc_5);
}// end function

private static function strToChars(param1:String) : Array
{
var _loc_2:Array = [];
var _loc_3:* = param1.length;
var _loc_4:int = 0;
while (_loc_4 < _loc_3)
{

_loc_2.push(param1.charCodeAt(_loc_4));
_loc_4++;
}
return _loc_2;
}// end function

public static function penrynAlytic(param1:String) : Boolean
{
var _loc_3:String = null;
var _loc_2:* = param1.split("/";
for each (_loc_3 in _loc_2)
{

if (_loc_3.indexOf("*" > 0)
{
return true;
}
}
return false;
}// end function

private static function initialize(param1:Array) : void
{
var _loc_3:Number = NaN;
var _loc_5:int = 0;
var _loc_2:Number = 0;
var _loc_4:* = param1.length;
_loc_5 = 0;
while (_loc_5 <= 255)
{

mykey[_loc_5] = param1[_loc_5 % _loc_4];
sbox[_loc_5] = _loc_5;
_loc_5++;
}
_loc_5 = 0;
while (_loc_5 <= 255)
{

_loc_2 = (_loc_2 + sbox[_loc_5] + mykey[_loc_5]) % 256;
_loc_3 = sbox[_loc_5];
sbox[_loc_5] = sbox[_loc_2];
sbox[_loc_2] = _loc_3;
_loc_5++;
}
return;
}// end function

private static function charsToStr(param1:Array) : String
{
var _loc_2:String = "";
var _loc_3:* = param1.length;
var _loc_4:int = 0;
while (_loc_4 < _loc_3)
{

_loc_2 = _loc_2 + String.fromCharCode(param1[_loc_4]);
_loc_4++;
}
return _loc_2;
}// end function

private static function calculate(param1:Array, param2:Array) : Array
{
var _loc_6:Number = NaN;
var _loc_7:Number = NaN;
var _loc_8:Number = NaN;
var _loc_11:Number = NaN;
initialize(param2);
var _loc_3:Number = 0;
var _loc_4:Number = 0;
var _loc_5:Array = [];
var _loc_9:* = param1.length;
var _loc_10:int = 0;
while (_loc_10 < _loc_9)
{

_loc_3 = (_loc_3 + 1) % 256;
_loc_4 = (_loc_4 + sbox[_loc_3]) % 256;
_loc_7 = sbox[_loc_3];
sbox[_loc_3] = sbox[_loc_4];
sbox[_loc_4] = _loc_7;
_loc_11 = (sbox[_loc_3] + sbox[_loc_4]) % 256;
_loc_6 = sbox[_loc_11];
_loc_8 = param1[_loc_10] ^ _loc_6;
_loc_5.push(_loc_8);
_loc_10++;
}
return _loc_5;
}// end function

}
}
Post by: huyphuong119922 01/12/2009 07:10 pm
package core
{

final public class Perynater extends Crypto
{
public var onError:Function;
public var onPerynate:Function;

public function Perynater()
{
return;
}// end function

public function perynate(param1:String, param2:String) : void
{
var _loc_5:String = null;
var _loc_3:* = getEString(param1);
var _loc_4:* = param1.split(_loc_3);
if (vPyern(_loc_3, param2))
{
_loc_5 = Crypto.perynate(Crypto.pelynate(_loc_3), param2);
if (this.onPerynate != null)
{
this.onPerynate(_loc_4[0] + _loc_5 + _loc_4[1], _loc_3, _loc_5, param2);
}
}
else if (this.onError != null)
{
this.onError();
}
return;
}// end function

private static function getEString(param1:String) : String
{
var _loc_2:* = param1.indexOf("*";
var _loc_3:* = param1.lastIndexOf("/", _loc_2);
var _loc_4:* = param1.indexOf("/", _loc_2);
if (param1.indexOf("/", _loc_2) < 0)
{
_loc_4 = param1.length;
}
return param1.substring((_loc_3 + 1), _loc_4);
}// end function

}
}
Post by: huyphuong119922 01/12/2009 07:14 pm
Trên đây là 2 source lấy từ EmageView.swf (Perynater; Crypto) hình như là có liên quan đến việc encode password cho folder.

Lê Bằng help mình tạo 1 php file có chức năng encode này nha. Ths a lot.


Nick name:
Email:
Security Code:

B  i   u  Quote Code Img
Smilies

  s.Gallery download
 
(25/09/2008)
(Download: 11594 )
 
     
  Vote
 
s.Gallery good ?
Verry good
Good but has errors
indifferent
Verry bad
 
     
  Counter
 
Online : 3
Visited : 217102
 
     
  Support online
 
 
     
© 2008 sincos. Powered by s.Code
Builded on codeIgniter framework