IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Encryptage AES en javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 48
    Par défaut Encryptage AES en javascript
    Bonjour,

    J'aurai une question à propos de l'encryptage AES en javascript mais à partir d'un code Java. J'espère que je suis au bon en droit. Je m'explique: j'aimerais faire le même cryptage en javascript fait à partir de ce code java que voici:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    import java.security.InvalidAlgorithmParameterException;
    import java.security.InvalidKeyException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import javax.crypto.BadPaddingException;
    import javax.crypto.Cipher;
    import javax.crypto.IllegalBlockSizeException;
    import javax.crypto.NoSuchPaddingException;
    import javax.crypto.SecretKey;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    import javax.xml.bind.DatatypeConverter;
     
    public class chiffrement {
    	public static final String TAG = "YourAppName";
    	private static String TRANSFORMATION = "AES/CBC/PKCS5PADDING";
    	private static String ALGORITHM = "AES";
    	private static String DIGEST = "MD5";
    	private static Cipher _cipher;
    	private static SecretKey _password;
    	private static IvParameterSpec _IVParamSpec;
    	// 16-byte private key
    	private static byte[] IV = "ThisIsUrPassword".getBytes();
     
    	/**
             * Constructor
             * 
             * @password Public key
             */
    	public chiffrement(String password) {
    		try {
    			// Encode digest
    			MessageDigest digest;
    			digest = MessageDigest.getInstance(DIGEST);
    			_password = new SecretKeySpec(digest.digest(password.getBytes()),
    					ALGORITHM);
    			// Initialize objects
    			_cipher = Cipher.getInstance(TRANSFORMATION);
    			_IVParamSpec = new IvParameterSpec(IV);
    		} catch (NoSuchAlgorithmException e) {
    			System.out.println(e.getMessage());
    		} catch (NoSuchPaddingException e) {
    			System.out.println(e.getMessage());
    		}
    	}
     
    	/**
             * Encryptor.
             * 
             * @text String to be encrypted
             * @return Base64 encrypted text
             */
    	public String encrypt(byte[] text) {
    		byte[] encryptedData;
    		try {
    			_cipher.init(Cipher.ENCRYPT_MODE, _password, _IVParamSpec);
    			encryptedData = _cipher.doFinal(text);
    		} catch (InvalidKeyException e) {
    			System.out.println(e.getMessage());
    			return null;
    		} catch (InvalidAlgorithmParameterException e) {
    			System.out.println(e.getMessage());
    			return null;
    		} catch (IllegalBlockSizeException e) {
    			System.out.println(e.getMessage());
    			return null;
    		} catch (BadPaddingException e) {
    			System.out.println(e.getMessage());
    			return null;
    		}
    		return DatatypeConverter.printBase64Binary(encryptedData);
    	}
     
     
    	public static void main(String[] args) {
    		chiffrement r = new chiffrement("mypass");
    		String message ="MonPasse";
    		String messageCrypt = r.encrypt(message.getBytes());
     
    		System.out.println(message);
    		System.out.println(messageCrypt);
    	}
     
    }

    Pour l'instant j'ai récupéré un script sur l'AES sur le net à cette adresse http://www.movable-type.co.uk/scripts/aes.html et j'ai le bout de code suivant en js:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function connexionTest () {
    	$pwd = 'tototata';
    	$textAes="mypass"
    	$pass = Aes.Ctr.encrypt($pwd,$textAes, 256);
    	alert("passcrypt : "+$pass);
    }
    J'arrive à avoir un string unique de même longueur que celui renvoyé par le code Java.
    Mais j'aimerai obtenir le même cryptage et que les deux codes en java et en js me retourne la même value.
    Serait-ce possible et qu'est ce quelqu'un aurait il une idée s'il vous plaît?

    Je vous remercie d'avance

    Cordialement

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Par défaut
    Tu as essayé avec crypto-js ?

    https://code.google.com/p/crypto-js/#AES

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 48
    Par défaut
    Bonjour,

    oui merci j'ai testé aussi avec cryptojs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        var key = CryptoJS.enc.Hex.parse('secret');
        var iv  = CryptoJS.enc.Hex.parse('ThisIsUrPassword');
       	var encrypted = CryptoJS.AES.encrypt("MyPassword", 'key');
    J'ai pareil que tout à l'heure, un string de même taille mais pas pareil.
    Je vais continuer à chercher de mon côté mais si quelqu'un a une proposition, je dis pas non.
    Merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    En principe ce devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var key = CryptoJS.MD5(CryptoJS.enc.Latin1.parse('mypass'));
    console.log('[' + key.toString(CryptoJS.enc.Hex) + ']');
     
    var iv  = CryptoJS.enc.Latin1.parse('ThisIsUrPassword');
    console.log('[' + iv.toString(CryptoJS.enc.Hex) + ']');
     
    var message = CryptoJS.enc.Latin1.parse('Message');
    console.log('[' + message.toString(CryptoJS.enc.Hex) + ']');
     
    var encrypted = CryptoJS.AES.encrypt(message, key, { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, iv: iv });
    console.log('[' + encrypted.toString(CryptoJS.enc.Hex) + ']');
    Mais j'obtiens une chaîne vide, et je ne sais pas trop comment débugger ce qui ne va pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. Cryptage AES - Java & Javascript
    Par Loenix dans le forum Sécurité
    Réponses: 36
    Dernier message: 23/08/2013, 12h48
  3. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo