Comment calculer un code HASH de puis un fichier HASH?

fatene_rachid - 9 mars 2013 à 13:03
 fatene_rachid - 12 mars 2013 à 16:27
Bonjour tous le monde ,
comment calculer un fichier HASH a l'extention ".SHA" ou ".BCL", qui contient un code HASH crypter pour obtenir des codes de déblocage.

************* par exemple:
j'ai des exemples des fichiers déja calculés:
1ér exemple:

* ici le contenu de fisher HASH ".BCL"
[Log]
imei=359341032173887
hash=8A91EA00CEDA62F13344E919B4AF13726F8E05073272A9CF20781982A3ED50A2BF3CCFCA76309BC377F9203C44C8805E88D0BB3DF5664A44114A6B1BCEF5A4036D491712001D8BA12E540DA47D6FAA905C8FE2835208FC73CA51AD8BCF376499C07B7676ADA4D52E98511E219F9624A8FF0056BEFCFECE917182057330CE149E38D83F041873F9AFAED46D803C699C2ACCACE4FE8C8C8531D073B923234F7E49
model=RM-593
ver=1610
ticket=CF235EEC9045E55742D9C0462A3E8CF4FECB7188

* ici les codes calculeés de fichier HASH ".BCL":
#pw+494183856072483+1#
#pw+798150184347106+2#
#pw+990009342685027+3#
#pw+091277686859569+4#
#pw+625968809151782+5#
#pw+517527799750652+6#
#pw+232675950278423+7#

***************************************************************************
2éme exemple:

* ici le contenu de fisher HASH ".SHA"
[IMEI]
357989034626021
[TARGET_HASH]
A467E5DA7CD1EF3AA0D6F087DFCEE4A91F0D538C

* ici les codes calculeés de fichier HASH ".SHA":

#pw+731279031696206+1#
#pw+095051838767405+2#
#pw+352602152454394+3#
#pw+027037395830770+4#
#pw+934079094150918+5#
#pw+426080715936038+6#
#pw+583598778938206+7#

13 réponses

Utilisateur anonyme
10 mars 2013 à 10:54
Bonjour

Dois-tu tout réécrire toi-même ou bien es-tu autorisé à appeler les classes standards de Java pour faire ça? Il me semble que j'ai déjà eu à faire ce genre de chose pour SHA quand j'étais en Master 1 STL à Paris 6, je peux poster le code ici si tu veux.
























T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
10 mars 2013 à 15:27
Merci pour votre répence, Mr Julien Gouesse.

Oui ,j'aimrai bien m'aider a ce sujet, de poster le code ou l'algorithme pour calculer le code crypter de ces type de fichier.

Merci Beaucouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuup.
0
Utilisateur anonyme
10 mars 2013 à 17:16
Zut j'ai réussi à retrouver mon code source du MD5 en C qui est ici sur mon ancien site web et mon implémentation d'Huffman et Shannon-Fano en Java mais rien pour SHA.

Ci-dessous l'implémentation (commentée) de l'algorithme MD5 en Java :

import java.io.EOFException;
import java.io.File;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.ByteOrder;
import java.util.Vector;

public class MD5{


private int T[];

private int X[];

private long N;

private long taille;

private int bufferMD[];

private byte message[];


public MD5(String filename){
preparation_du_message(filename);
initialisation_du_buffer_MD();
boucle_principale();
production_du_hache(filename);
}

private void production_du_hache(String filename){
/*remise des octets de poids faible en premier si necessaire*/
//bufferMD[0]=Integer.reverseBytes(bufferMD[0]);
//bufferMD[1]=Integer.reverseBytes(bufferMD[1]);
//bufferMD[2]=Integer.reverseBytes(bufferMD[2]);
//bufferMD[3]=Integer.reverseBytes(bufferMD[3]);
for(int i=0;i<4;i++)
System.out.printf("%08x",bufferMD[i]);
/*complete la valeur a gauche avec des zeros
8 zeros au plus car on affiche des mots de 4 octets
*/
System.out.println(" "+filename);
}

private void initialisation_du_buffer_MD(){
bufferMD=new int[4];
bufferMD[0]=0x67452301;
bufferMD[1]=0xEFCDAB89;
bufferMD[2]=0x98BADCFE;
bufferMD[3]=0x10325476;
}

private void preparation_du_message(String filename){
int allongement; /*nombre d'octets a rajouter pendant la dilatation*/
int i;
/*calcul de la longueur du message avant dilatation*/
File file=new File(filename);
taille=file.length();

/*l'allongement est exprime en octet*/
if(taille%64<56)
/*si la taille du message n'est pas encore
congrue a 448 modulo 512, on l'allonge
de la difference
*/
allongement=(int)(56-(taille%64));
else
/*sinon, on l'allonge de la difference
ET de 512 bits (64 octets)
soit 64 + 56 - (taille%64)
*/
allongement=(int)(120-(taille%64));

/*la taille du message etendu est egale a la somme de la
taille du message brut avec la taille de l'allongement
et avec les 8 octets (64 bits) de la longueur a
concatener
*/
N=(taille+allongement+8)/4;

/*la taille du message etendu en octet est egale a 4
fois sa taille en mots de 32 bits (trivial).
*/
message=new byte[(int)(N*4)];
/*lecture du message*/
try {/*ouverture du fichier en lecture seule en mode binaire*/
BufferedReader bufReader=new BufferedReader(new FileReader(filename));
char[] tmpmessage=new char[(int)taille];
bufReader.read(tmpmessage,0,(int)taille);
for(i=0;i<taille;i++)
message[i]=(byte)tmpmessage[i];
/*fermeture du fichier*/
bufReader.close();
}
catch(IOException io)
{System.out.println("erreur: "+io);
System.exit(1);
}

/*ajout du '1'*/
message[(int)taille]=(byte)0x80;

/*ajout des '0'*/
for(i=0;i>(i*8));
}

private void boucle_principale(){
int AA,BB,CC,DD,i,j;
T=new int[64];
for(i=0;i<64;i++)
T[i]=(int)(((long)(4294967296.0*Math.abs(Math.sin((double)(i+1)))))&0xFFFFFFFF);
X=new int[16];
for(i=0;i<N/16;i++)
{for(j=0;j<16;j++)
X[j]=(message[(i*64)+(j*4)])|
(message[(i*64)+(j*4)+1])<<8|
(message[(i*64)+(j*4)+2])<<16|
(message[(i*64)+(j*4)+3])<<24;
AA=bufferMD[0];
BB=bufferMD[1];
CC=bufferMD[2];
DD=bufferMD[3];

bufferMD[0]=FF(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],0,7,1);
bufferMD[3]=FF(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],1,12,2);
bufferMD[2]=FF(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],2,17,3);
bufferMD[1]=FF(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],3,22,4);
bufferMD[0]=FF(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],4,7,5);
bufferMD[3]=FF(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],5,12,6);
bufferMD[2]=FF(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],6,17,7);
bufferMD[1]=FF(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],7,22,8);
bufferMD[0]=FF(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],8,7,9);
bufferMD[3]=FF(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],9,12,10);
bufferMD[2]=FF(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],10,17,11);
bufferMD[1]=FF(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],11,22,12);
bufferMD[0]=FF(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],12,7,13);
bufferMD[3]=FF(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],13,12,14);
bufferMD[2]=FF(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],14,17,15);
bufferMD[1]=FF(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],15,22,16);

bufferMD[0]=GG(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],1,5,17);
bufferMD[3]=GG(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],6,9,18);
bufferMD[2]=GG(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],11,14,19);
bufferMD[1]=GG(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],0,20,20);
bufferMD[0]=GG(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],5,5,21);
bufferMD[3]=GG(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],10,9,22);
bufferMD[2]=GG(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],15,14,23);
bufferMD[1]=GG(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],4,20,24);
bufferMD[0]=GG(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],9,5,25);
bufferMD[3]=GG(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],14,9,26);
bufferMD[2]=GG(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],3,14,27);
bufferMD[1]=GG(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],8,20,28);
bufferMD[0]=GG(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],13,5,29);
bufferMD[3]=GG(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],2,9,30);
bufferMD[2]=GG(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],7,14,31);
bufferMD[1]=GG(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],12,20,32);

bufferMD[0]=HH(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],5,4,33);
bufferMD[3]=HH(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],8,11,34);
bufferMD[2]=HH(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],11,16,35);
bufferMD[1]=HH(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],14,23,36);
bufferMD[0]=HH(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],1,4,37);
bufferMD[3]=HH(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],4,11,38);
bufferMD[2]=HH(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],7,16,39);
bufferMD[1]=HH(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],10,23,40);
bufferMD[0]=HH(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],13,4,41);
bufferMD[3]=HH(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],0,11,42);
bufferMD[2]=HH(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],3,16,43);
bufferMD[1]=HH(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],6,23,44);
bufferMD[0]=HH(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],9,4,45);
bufferMD[3]=HH(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],12,11,46);
bufferMD[2]=HH(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],15,16,47);
bufferMD[1]=HH(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],2,23,48);

bufferMD[0]=II(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],0,6,49);
bufferMD[3]=II(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],7,10,50);
bufferMD[2]=II(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],14,15,51);
bufferMD[1]=II(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],5,21,52);
bufferMD[0]=II(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],12,6,53);
bufferMD[3]=II(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],3,10,54);
bufferMD[2]=II(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],10,15,55);
bufferMD[1]=II(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],1,21,56);
bufferMD[0]=II(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],8,6,57);
bufferMD[3]=II(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],15,10,58);
bufferMD[2]=II(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],6,15,59);
bufferMD[1]=II(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],13,21,60);
bufferMD[0]=II(bufferMD[0],bufferMD[1],bufferMD[2],bufferMD[3],4,6,61);
bufferMD[3]=II(bufferMD[3],bufferMD[0],bufferMD[1],bufferMD[2],11,10,62);
bufferMD[2]=II(bufferMD[2],bufferMD[3],bufferMD[0],bufferMD[1],2,15,63);
bufferMD[1]=II(bufferMD[1],bufferMD[2],bufferMD[3],bufferMD[0],9,21,64);

bufferMD[0]+=AA;
bufferMD[1]+=BB;
bufferMD[2]+=CC;
bufferMD[3]+=DD;

}
}

private static int F(int x,int y,int z){
return((x&y)|((~x)&z));
}

private static int G(int x,int y,int z){
return((x&z)|(y&(~z)));
}

private static int H(int x,int y,int z){
return(x^y^z);
}

private static int I(int x,int y,int z){
return(y^(x|(~z)));
}

private int FF(int a,int b,int c,int d,int k,int s,int i){
return(b+rotateLeft(a+F(b,c,d)+X[k]+T[i-1],s));
}

private int GG(int a,int b,int c,int d,int k,int s,int i){
return(b+rotateLeft(a+G(b,c,d)+X[k]+T[i-1],s));
}

private int HH(int a,int b,int c,int d,int k,int s,int i){
return(b+rotateLeft(a+H(b,c,d)+X[k]+T[i-1],s));
}

private int II(int a,int b,int c,int d,int k,int s,int i){
return(b+rotateLeft(a+I(b,c,d)+X[k]+T[i-1],s));
}
private static int rotateLeft(int a,int n){
return((a<<n)|(a>>(32-n)));
}



public static void main(String[] args){
if(args.length!=1)
{System.out.println("usage: java MD5 filename");
return;
}
new MD5(args[0]);
}
}






























T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
10 mars 2013 à 19:45
Merci Beaucoup Mr Julien Gouesse pour votre aide.

je vais exécuter cet algorithme ;

Merci Beaucoup,
Thanks very much,
Gracias,
.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
10 mars 2013 à 20:04
Utilise la classe MessageDigest si on ne te demande pas de réimplémenter l'algorithme SHA.



















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
10 mars 2013 à 20:24
Salut,
j'ai une question trés importante,
est ce que l'application de cet agorithme nécessite une configuration (de pc) special (carte graphique ,processeur,mémoire...) ou n'importe quelle config ?
0
Utilisateur anonyme
10 mars 2013 à 23:23
Non, rien de spécial, il faut juste au moins Java 1.4, tu vois bien que je n'utilise que des classes issues du JDK standard.




























T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Utilisateur anonyme
10 mars 2013 à 23:25
Je précise que mes exemples permettent de calculer la clé de hachage d'un fichier, j'espère que c'est clair.



















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
11 mars 2013 à 17:53
Merci Mr Julien Gouesse,
Je vous demande de m'aider plus que ça, Moi je maitrise pas le language JAVA.
est ce que vous pouvez m'envoyer l'application pour calculer moi même le fichier HASH.sha qui contient le code HASH ?

ou ,me calculer le fchier (RM-750_359744044819969.sha) qui se trouve dans ce lien :http://www.4shared.com/file/M2r58_6l/RM-750_359744044819969.html

ouvrez le fichier avec "Bloc note" pour voir le contenu de fichier.

Voici le contenu de fichier:
[IMEI]
359744044819969
[TARGET_HASH]
0C479D08F6838F55709C4696E4F3F724C50BC5D5
0
Utilisateur anonyme
11 mars 2013 à 19:17
Bonsoir

En fait, ce que vous essayez de faire n'est pas possible. On peut prendre un fichier quelconque et calculer son haché au format SHA mais pas faire l'inverse.
















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
11 mars 2013 à 22:06
Bonsoir

non c'est pas ça ,la vérité c'est que j'ai pas encore étudié cet language de developpement.et je suis besoin trés urgent de calculer le code HASH de fichier que j'ai poster son lien déja (RM-750_359744044819969.sha)
0
Utilisateur anonyme
11 mars 2013 à 23:55
Un fichier avec l'extension SHA est déjà une clé de hachage ou haché d'un autre fichier. Si vous voulez calculer le haché d'un fichier quelconque avec SHA, utilisez sha1sum sous GNU Linux ou bien ce formulaire en ligne qui fait la même chose en ligne.























T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
fatene_rachid
12 mars 2013 à 16:27
Bonjour
j'ai échoué dans toutes les tentatives.
J'avais l'habitude de travailler avec les boites de déblocage pour débloquer les gsm directement, ou calculer les codes puis les entrés manuellement.

Plus que ça,j'ai pas la base et las connaissances pour exécuter les petites simple opérations.

Enfin je peut dire que, j'ai échoué face à ce défi.

Merci Beaucoup de votre collaboration.
0
Rejoignez-nous