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

Services Web Discussion :

[c#][Web Service]cryptage et decryptage


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Par défaut [c#][Web Service]cryptage et decryptage
    Bonjour a tous,

    voila, je travaille sur un Web Service en C# et je suis amené a passer (en XML)
    des données qui devraient êtres cryptées.

    j'ai bien trouvé la manière de les crypter en C# mais une fois dans mon Web Service (et vu que je suis nul en php question cryptage) je ne sais pas trop
    comment décrypter mes données.

    ma classe de cryptage en C#

    Code : 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
     
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;
     
    namespace Crypto
    {
        class Crypto3Des
        {
            public static string Encrypt3Des(string toEncrypt, string sKey, string sIV)
            {
                TripleDESCryptoServiceProvider tdes = (TripleDESCryptoServiceProvider)TripleDESCryptoServiceProvider.Create();
                tdes.Key = Encoding.ASCII.GetBytes(sKey);
                tdes.IV = Encoding.ASCII.GetBytes(sIV);
                tdes.Padding = PaddingMode.Zeros;
                tdes.Mode = CipherMode.CFB;
     
                MemoryStream ms = new MemoryStream();
                CryptoStream ecs = new CryptoStream(ms, tdes.CreateEncryptor(), CryptoStreamMode.Write);
                ecs.Write(Encoding.ASCII.GetBytes(toEncrypt), 0, toEncrypt.Length);
                ecs.Close();
                byte[] encData_byte = ms.ToArray();
     
                byte[] final = new byte[tdes.IV.Length + encData_byte.Length];
                for (int i = 0; i < tdes.IV.Length; i++)
                {
                    final[i] = tdes.IV[i];
                }
                for (int i = 0; i < encData_byte.Length; i++)
                {
                    final[tdes.IV.Length + i] = encData_byte[i];
                }
     
                return Convert.ToBase64String(final);
            }
        }
    }
    la fonction de cette classe vient d'ici

    http://www.developpez.net/forums/sho...hlight=crypter

    mais comme vous pouvez le voir, la(les) fonctions php sont issues d'une classe et donc je m'y perd un peu....

    quelqu'un pourrait m'aider a y voir plus clair ?

    les fonctions php ou je me perd (en brut) issues du même post

    Code : 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
     
    function _base64url_decode($text){
    		$base64url = strtr($text, '-_','+/');
    		$base64 = base64_decode($base64url);
    		return ($base64);
    	}
     
    function _decrypt($crypttext) {
    		$crypttext=$this->_base64url_decode($crypttext);
    		$ivsize = mcrypt_get_iv_size($this->cypher,$this->mode);
    		$iv = substr($crypttext, 0, $ivsize);
    		$crypttext = substr($crypttext, $ivsize);
    		mcrypt_generic_init ($this->td, $this->key, $iv);
    		$plaintext = mdecrypt_generic ($this->td, $crypttext);
    		mcrypt_generic_deinit ($this->td);
    		return $plaintext;
    	}
    est il a préciser que je n'ai besoin que de crypter en C# et decrypter en php, et pas l'inverse

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    plutot que de crypter certaines données, ne serait til pas plus simple d'utiliser un protocole de transmission sécurisé ?

    si tu utilise WCF pour développer ton webservice, tu dois savoir qu'il est possible d'indiquer que tu souhaite que ton webservice soit exposé avec le protocole wsHttpBinding qui est le protocole HTTPS donc avec des SSL.
    En clair, meme si techniquement dans le tunel tes données, les données qui transites sont en XML (SOAP) le tunel est crypté et nécessite des crédentiel en prime...

    ca renfore ta sécurité et peu poser moins de probleme pour l'implantation coté PHP... non ?
    encore une fois j'en suis pa certains car moi j'utilise les webservices dans des vrais applications distribuées.

Discussions similaires

  1. [AXIS][WEB SERVICES] .xsd
    Par cosmos38240 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 16/07/2004, 15h55
  2. [web service] pb interoperabilité?
    Par david42 dans le forum Services Web
    Réponses: 3
    Dernier message: 02/03/2004, 14h01
  3. [WebService]Fichier Java et WSDL associé pour Web Services
    Par P4_le_requin_breton dans le forum Services Web
    Réponses: 9
    Dernier message: 23/02/2004, 12h55
  4. [JBuilder][Web Services] à partir de quelle version?
    Par sicard_51 dans le forum JBuilder
    Réponses: 2
    Dernier message: 25/08/2003, 12h54
  5. [Kylix] problème web service kylix
    Par RezzA dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2003, 14h50

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