Вход Регистрация
* 3KZO

Шифрование путём обмена ключей

  1. class Encryption
  2. {
  3. public static function encrypt($key, $data)
  4. {
  5. $buf = [];
  6. $unpackedKey = unpack("H*", $key)[1];
  7. $buf[] = pack("q", strlen($unpackedKey));
  8. $buf[] = $unpackedKey;
  9. $unpackedData = unpack("H*", $data)[1];
  10. $buf[] = pack("q", strlen($unpackedData));
  11. $buf[] = $unpackedData;
  12.  
  13. return implode("", $buf);
  14. }
  15.  
  16. public static function decrypt($key, $encrypted)
  17. {
  18. $unpackedKeyLength = unpack("q", substr($encrypted, 0, 8))[1];
  19. $packedKey = pack("H*", substr($encrypted, 8, $unpackedKeyLength));
  20. if ($packedKey === $key) {
  21. $unpackedDataLength = unpack("q", substr($encrypted, 8 + $unpackedKeyLength, 8))[1];
  22. $packedData = pack("H*", substr($encrypted, 8 + $unpackedKeyLength + 8, $unpackedDataLength));
  23. return $packedData;
  24. }
  25.  
  26. return null;
  27. }
  28. }
» Описание: Без магии, обычный алгоритм передачи данных на подобие того, что использует телега.
» Время добавления: 16 Янв 2021 в 02:40
» Посмотров: 2722
» textarea
» Рейтинг: [+3 | -4]
Комментарии [4]
Онлайн: 1
Реклама