Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2139 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP Travailler le code binaire d'une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP Travailler le code binaire d'une chaine

n°1847734
Toinou87
That misread could have been.
Posté le 05-02-2009 à 21:16:17  profilanswer
 

Bonjour,
 
pour faire un peu de crypto (SHA256), j'ai besoin de travailler le code binaire d'une chaine de caractère en PHP. (Attention je ne souhaite pas faire la chaine de caractère ne contenant que des "caractères" 0 et des 1 qui correspond, je veux travailler sur les bits)
 
exemple : //je mets des "." pour la lisibilité
ascii "maChaine"
binaire 01101101.01100001.01000011.01101000.01100001.01101001.01101110.01100101
 
je veux par exemple faire une concaténation de bits (les bits ajoutés sont spécifiques) pour avoir un multiple de 512 bits
01101101.01100001.01000011.01101000.01100001.01101001.01101110.01100101.10000000
.00000000.00000000.00000000.[ plein de bits ...].00000000.00001000
 
je veux ensuite pouvoir découper en blocs de 512 bits
 
Je souhaite aussi faire du décalage binaire a droite et a gauche (EDIT << et >> sont ces opérateurs)
 
et bien sur des opérations binaires classiques mais ça, je connais
&  ET bit-à-bit  
|  OU bit-à-bit  
^  OU exclusif  
~  Complément (NON)
 
 
 
Je n'arrive pas a trouver sur le net comment utiliser les chaines de bits en PHP j'ai juste trouvé des fonctions qui permettent d'obtenir une chaine de caractères 0 et 1 (soit 7 ou 8bits selon la fonction) correspondant à la séquence de bits 0 et 1 de la chaine initiale. (les initiés comprendront la différence)
 
 
Merci d'avance pour votre aide


Message édité par Toinou87 le 05-02-2009 à 21:46:00

---------------
Toinou87 ;-p May the force be with you!!
mood
Publicité
Posté le 05-02-2009 à 21:16:17  profilanswer
 

n°1847749
FlorentG
Unité de Masse
Posté le 05-02-2009 à 22:55:22  profilanswer
 

Pour faire un peu de sha256, tu peux utiliser la fonction hash [:dawa]

Code :
  1. echo hash('sha256', $myString);

n°1847809
tomsoft
Posté le 06-02-2009 à 10:07:12  profilanswer
 

c'est malin :o
 
je pense qu'il veut faire l'algo lui meme non ?

n°1847830
Toinou87
That misread could have been.
Posté le 06-02-2009 à 10:39:53  profilanswer
 

oui je voudrais le coder moi meme.
 
Merci de faire une réponse plus explicite ^^


---------------
Toinou87 ;-p May the force be with you!!
n°1847865
skeye
Posté le 06-02-2009 à 12:02:49  profilanswer
 

A ma connaissance il n'y a pas de fonctions prévues pour ce genre de choses...et je ne vois pas vraiment quel serait l'intérêt [:joce]


---------------
Can't buy what I want because it's free -
n°1847908
Toinou87
That misread could have been.
Posté le 06-02-2009 à 12:57:18  profilanswer
 

ben je t'ai donnée l'exemple : faire du cryptage.
 
La fonction existe en php donc il doit y avoir un moyen de le faire. D'ou ma demande, comme exercice j'ai envie de le faire.
 
Eventuellement, je pense pouvoir le faire avec de l'hexadécimal,
 
j'imagine qu'on peut concatener avec l'opérateur "." en hexa et la notation 0x
 
Si je fais ca, comment je peux séparer en blocs de 512 bits (64 caractères ascii mais 32 caractères hexa)


---------------
Toinou87 ;-p May the force be with you!!
n°1847922
omega2
Posté le 06-02-2009 à 13:19:54  profilanswer
 

Le compilateur/exécuteur php est écrit en C, pas besoin qu'on puisse faire quelque chose en PHP pour que le compilateur/exécuteur PHP soit capable de le faire.

Message cité 1 fois
Message édité par omega2 le 06-02-2009 à 13:21:46
n°1847924
olivthill
Posté le 06-02-2009 à 13:22:58  profilanswer
 

PHP permet de faire des opérations sur des bits, voir http://www.php.net/manual/en/langu [...] itwise.php
Comme en langage C, il y a les opérateurs booléens qui permettent de faire toutes les manipulations que l'on veut avec des masques, et il y a les opéarateurs qui font du décalage à gauche ou à droite.
Que demander de plus ?

n°1847934
Toinou87
That misread could have been.
Posté le 06-02-2009 à 13:37:52  profilanswer
 

omega2 a écrit :

Le compilateur/exécuteur php est écrit en C, pas besoin qu'on puisse faire quelque chose en PHP pour que le compilateur/exécuteur PHP soit capable de le faire.


 
il existe une class pour php 4 qui decrit le hashing sha256 sauf qu'elle le fait bizarrement donc je voudrais le recoder pour moi en suivant strictement l'algorithme. Ca s'appelle un exercice.
 

olivthill a écrit :

PHP permet de faire des opérations sur des bits, voir http://www.php.net/manual/en/langu [...] itwise.php
Comme en langage C, il y a les opérateurs booléens qui permettent de faire toutes les manipulations que l'on veut avec des masques, et il y a les opéarateurs qui font du décalage à gauche ou à droite.
Que demander de plus ?


ben a priori le seul truc que je vois pas trop comment faire c'est la séparation en blocs de 512 bits et la concaténation de bits.


---------------
Toinou87 ;-p May the force be with you!!
n°1847947
olivthill
Posté le 06-02-2009 à 13:53:52  profilanswer
 

La séparation en bloc de 512 bit peut se faire avec substr().
 
La concaténation de bits n'est pas possible car il n'existe pas de variables ne contenant qu'un seul bit.
Mais il est possible de concaténer des octets. Il faut travailler à deux niveaux, celui des octets et celui des bits à l'intérieur d'un octet en utilisant les décalages ou les masques.
 
Faire cela en PHP se fait de la même manière qu'en langage C.
 
Bien sûr, ce n'est pas facile pour quelqu'un qui n'en fait pas souvent, et c'est pour cela qu'il est recommandé d'utiliser des bouts de code déjà écrit, ou les fonctions déjà disponibles.
 
Bon courage !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP Travailler le code binaire d'une chaine

 

Sujets relatifs
[Resolu]Exception Php[FLASH/ActionScript 2.0] Probleme de code
Une question sur les suites/chaine de caracteres:)[MySQL-PHP] Egalité sur 2 strings qui ne fonctionne pas [résolu]
Questions sur week planner PHP/SQL[PHP] Valeur précédente dans Array
redirection php après verification code captchaOptimisation d'un code VBA pour excel
[RESOLU] Découpage de chaineCherche un code
Plus de sujets relatifs à : PHP Travailler le code binaire d'une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR