Technology
Classe pour faire de l'AES-256 en Php PDF Print E-mail
Tuesday, 18 October 2011 09:41
There are no translations available.

Après plusieurs recherches sur le net pour faire dialoguer PHP avec une application Java qui utilise le cryptage AES-256, je vous offre une classe toute faite.

Elle prend en charge l'AES 128, 192, 256, selon la longeur de la clé que vous passerez, et tous les autres mode supporté par MCrypt.

Pour crypter en AES-256,  on utilise l algorithme "MCRYPT_RIJNDAEL_128" en mode "MCRYPT_MODE_CBC" avec une clé de 32.

 

AES a une valeur fixe pour le "block size" et l'IV de 128 bits (16 chars).
La seule valeur changeante est la taille de la clé selon le cryptage voulu:
- AES 128 (key_size: 16, block_size: 16, iv_size: 16)
- AES 192 (key_size: 24, block_size: 16, iv_size: 16)
- AES 256 (key_size: 32, block_size: 16, iv_size: 16)

 

Explication longue en anglais (je me suis basé dessus pour faire la version courte):

http://www.chilkatsoft.com/p/php_aes.asp

Explications sur les modes d'opérations (ECB, CBC, CFB...)
http://fr.wikipedia.org/wiki/Mode_d%27op%C3%A9ration_%28cryptographie%29

 

Cette classe a aussi une implémentation simple de la fonction OpenSSL "EVP_BytesToKey" qui n'existe pas en PHP et qui permet de dériver une donnée pour renvoyer une clé et un vecteur d'initialisation.

Etant donné qu'elle ne correspond pas tout à fait à la fonction originelle, je l'ai nommé "deriveKeyAndIV".

 

 

Read more...
 
php et ssh2_auth_pubkey_file() PDF Print E-mail
Friday, 14 October 2011 09:56
There are no translations available.

Parlons un peu d'une fonction de la librairie PECL ssh2 : ssh2_auth_pubkey_file().

Cette fonction permet de se connecter avec une clé publique, seulement dans la documentation php et les exemples sont flous sur certains points:

Le nom de la fonction, bien qu'elle fasse de l'authentification par clé publique nécessite le couple clé privée + clé publique en php.

La clé privée est obligatoire car la fonction a besoin de générer une signature, dans la fonction Java la clé publique est récupéré automatiquement, mais pas en php.

Ces clés sont bien nos clés à nous et non pas celles du distant et le serveur distant doit avoir notre clé publique dans son "authorized_keys" pour que cela fonctionne.

Le chemin des clés doit être absolu (utilisez realpath() au besoin).

Dans certains commentaires il est dit que le mode "ssh-rsa" pose problème, dans mon cas il fonctionne parfaitement (php 5.3+/libssh 0.11+).

Toujours pour les clés il faut qu'elle soit au format OpenSSH, notamment la clé publique doit avoir le format suivant :"<type de la clé><un espace><les données de la clé>", c'est du à une limitation de la librairie libssh2.

 

 

 
gForge pre commit hook pour fichier php PDF Print E-mail
Wednesday, 29 June 2011 12:36
There are no translations available.

Faire une vérification des fichiers PHP via le Commit Hook dans gForge

Voici un petit tutorial pour faire un filtre qui va tester les fichiers commit et les refuser si ce ne sont pas des php valide.

Fait avec la version de gForge AS 5.5

 

Read more...
 
Personnaliser Wappalyzer (PHP, java...) PDF Print E-mail
Wednesday, 26 January 2011 14:37
There are no translations available.

Pour ceux qui utilisent l'addon Wappalizer pour Firefox (http://wappalyzer.com/), voici un petit code à ajouter pour qu’il détecte PHP par les headers et l extension :

{
"Php": {
"icon": "http://static.php.net/www.php.net/favicon.ico",
"categories": {
"1": 18
},
"url": "\\.php(\\?.+)?$",
"headers": {
"X-Powered-By": "^PHP.*",
"Cookie" : "PHPSESSID"
}
}
}

 

Read more...
 
Installation d'un serveur SVN (subversion) sur un Synology DS1010+ PDF Print E-mail
Monday, 16 August 2010 13:54
There are no translations available.

Voici un petit tutoriel en français pour installer un serveur SVN (subversion) sur un Synology DS1010+

synology ds1010+

Read more...
 


French (Fr)English (United Kingdom)
Oct.11

French Custom UI

Left4Run 1.0.1
Apr.09

Graphic launcher for Left4Dead

Nov.08

Lanceur graphique pour les serveurs DoL.

Nov.08

Programme alternatif au ComponentChooser pour les personnes ayant le .net et ne voulant pas insta...