MadDog
Новичок
- Сообщения
- 26
- Репутация
- 0
В общем шифрую я данные
выдаёт - 0x1175EA89CB4F04BCBBDFCE2C06A922
вот как правильно средствами PHP его раскодировать. Перепробовал всё что можно. Всё время получается не то !
вот библиотека для php
вот окно вывода
Как быть ?!
Просто хочу связать PHP и autoit шифрование между собой, а не получается :(
Код:
#include <Crypt.au3>
$hWnd="proverka raboty"
$pass="123"
;защифровали
$jjtt1 = _Crypt_EncryptData($hWnd, $pass, $CALG_RC4)
ConsoleWrite($jjtt1& @CRLF)
;расшифровали
$jjtt2 = BinaryToString(_Crypt_DecryptData($jjtt1, $pass, $CALG_RC4))
ConsoleWrite("без кодирования-"&$jjtt2& @CRLF)
выдаёт - 0x1175EA89CB4F04BCBBDFCE2C06A922
вот как правильно средствами PHP его раскодировать. Перепробовал всё что можно. Всё время получается не то !
вот библиотека для php
Код:
<?php
/**
* Class RC4
*
* @category Crypt
* @author Rafael M. Salvioni
*/
/**
* Class RC4
*
* Implements the encrypt algorithm RC4.
*
* @category Crypt
* @author Rafael M. Salvioni
* @see http://pt.wikipedia.org/wiki/RC4
*/
class RC4
{
/**
* Store the permutation vectors
*
* @var array
*/
private static $S = array();
/**
* Swaps values on the permutation vector.
*
* @param int $v1 Value 1
* @param int $v2 Value 2
*/
private static function swap(&$v1, &$v2)
{
$v1 = $v1 ^ $v2;
$v2 = $v1 ^ $v2;
$v1 = $v1 ^ $v2;
}
/**
* Make, store and returns the permutation vector about the key.
*
* @param string $key Key
* @return array
*/
private static function KSA($key)
{
$idx = crc32($key);
if (!isset(self::$S[$idx])) {
$S = range(0, 255);
$j = 0;
$n = strlen($key);
for ($i = 0; $i < 255; $i++) {
$char = ord($key{$i % $n});
$j = ($j + $S[$i] + $char) % 256;
self::swap($S[$i], $S[$j]);
}
self::$S[$idx] = $S;
}
return self::$S[$idx];
}
/**
* Encrypt the data.
*
* @param string $key Key
* @param string $data Data string
* @return string
*/
public static function encrypt($key, $data)
{
$S = self::KSA($key);
$n = strlen($data);
$i = $j = 0;
$data = str_split($data, 1);
for ($m = 0; $m < $n; $m++) {
$i = ($i + 1) % 256;
$j = ($j + $S[$i]) % 256;
self::swap($S[$i], $S[$j]);
$char = ord($data{$m});
$char = $S[($S[$i] + $S[$j]) % 256] ^ $char;
$data[$m] = chr($char);
}
$data = implode('', $data);
return $data;
}
/**
* Decrypts the data.
*
* @param string $key Key
* @param string $data Encripted data
* @return string
*/
public static function decrypt($key, $data)
{
return self::encrypt($key, $data);
}
}
вот окно вывода
Код:
<?php
include('RC4.php');
$string = "proverka raboty";
$key = "123";
$crypt = RC4::encrypt($key, $string);
$dcrypt = RC4::decrypt($key, $crypt);
echo "
String: $string
Key: $key
Encripted Data: $crypt;
Success: " . ($string == $dcrypt ? 'true' : 'false') . "
";
?>
Как быть ?!
Просто хочу связать PHP и autoit шифрование между собой, а не получается :(