Je n'arrive pas à déchiffrer une valeur provenant d'un tiers utilisant des images 3D. Ils m'ont donné une clé, une valeur cryptée, le mode utilisé, et quelle devrait être la valeur décryptée, mais jusqu'à présent, je n'ai pas réussi à trouver comment passer du point a au point b. Je crois que le problème a à voir avec la clé qu'ils m'ont donnée - ils disent que c'est la clé du texte, mais je pense que cela doit encore être transformé d'une manière ou d'une autre.Décryptage d'une valeur en 3D à l'aide de Java
Le code ci-dessous est un exemple de ma première tentative de comprendre comment décrypter la valeur (AC9C5A46A63FC9EA dans ce cas)
Toute autre idée serait apprécié.
import java.security.spec.KeySpec;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
public class TripleDes2 {
private static final String UNICODE_FORMAT = "UTF8";
private static final String DESEDE_ENCRYPTION_SCHEME = "DESede";
private static final String CIPHER_ALG = "DESede/ECB/Nopadding"; //assuming no padding
private KeySpec ks;
private SecretKeyFactory skf;
private Cipher cipher;
private byte[] arrayBytes;
private String myEncryptionKey;
private SecretKey key;
public static void main(String args []) throws Exception {
TripleDes2 td= new TripleDes2();
String decrypted = td.decrypt("AC9C5A46A63FC9EA");
System.out.println("expecting: 04286EDDFDEA6BD7");
System.out.println("found: " + decrypted);
}
public TripleDes2() throws Exception {
myEncryptionKey = "1032FD2CD64A9D7FA4D061F76B04BFEA";
arrayBytes = myEncryptionKey.getBytes(UNICODE_FORMAT);
ks = new DESedeKeySpec(arrayBytes);
skf = SecretKeyFactory.getInstance(DESEDE_ENCRYPTION_SCHEME);
cipher = Cipher.getInstance(CIPHER_ALG);
key = skf.generateSecret(ks);
}
public String decrypt(String encryptedString) {
String decryptedText=null;
try {
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] encryptedText = encryptedString.getBytes();
byte[] plainText = cipher.doFinal(encryptedText);
decryptedText= new String(plainText);
} catch (Exception e) {
e.printStackTrace();
}
return decryptedText;
}
}
À quel problème vous devez faire face. –