1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pluxml_ynh.git synced 2024-09-03 20:16:02 +02:00
pluxml_ynh/sources/core/lib/class.plx.encrypt.php

55 lines
1.3 KiB
PHP
Raw Normal View History

2014-11-12 22:01:48 +01:00
<?php
/**
* Classe plxEncrypt responsable du cryptage et décryptage de données
*
* @package PLX
* @author Stephane F
**/
define('ENCRYPTION_KEY', 'ab12cd34#$');
class plxEncrypt {
/**
* Méthode qui crypte le texte $plainText
*
* @param plainText chaîne à crypter
* @return string chaîne cryptée
* @author Stephane F.
**/
private static function base64url_encode($plainText) {
$base64 = base64_encode($plainText);
$base64url = strtr($base64, '+/=', '-_,');
return $base64url;
}
/**
* Méthode qui décrypte le texte $plainText
*
* @param plainText chaîne à décrypter
* @return string chaîne décryptée
* @author Stephane F.
**/
private static function base64url_decode($plainText) {
$base64url = strtr($plainText, '-_,', '+/=');
$base64 = base64_decode($base64url);
return $base64;
}
public static function encryptId($int, $class='') {
return plxEncrypt::base64url_encode($int.'*'.substr(sha1($class.$int.ENCRYPTION_KEY), 0, 6));
}
public static function decryptId($int, $class='') {
$parts = explode('*', plxEncrypt::base64url_decode($int));
if(sizeof($parts) != 2)
return 0;
return substr(sha1($class.$parts[0].ENCRYPTION_KEY), 0, 6) === $parts[1] ? $parts[0] : 0;
}
}
?>