Interfaces informatiques Exemples d`implémentations
Transcription
Interfaces informatiques Exemples d`implémentations
Interfaces informatiques Exemples d’implémentations Fédération Française de Tennis de Table 01/07/2015 3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13 Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com Version 1.0 2.0 Date Modifications 03/07/2015 Création 24/07/2015 Implémentation VB / VBA Tables des matières Contenu ................................................................................................................................................... 2 Exemples java .......................................................................................................................................... 2 Exemples ruby ......................................................................................................................................... 2 Exemples VB6 ou VBA ............................................................................................................................. 3 1 3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13 Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com Contenu Ce document est le fruit des différentes participations des développeurs qui ont implémenté, dans leur application ou site internet, les interfaces Smartping fournies par la FFTT. Il est destiné à s’enrichir au fur et à mesure des contributions de chacun. N’hésitez pas à nous faire part de vos réussites à l’adresse mail suivante : [email protected] La FFTT assure un rôle de centralisation et de mise à disposition de ces différents exemples. Elle ne peut en garantir l’efficacité, n’étant pas l’auteur de ces lignes. Exemples java Le code java équivalent pour calculer la clé de contrôle tmc est le suivant : final String key = DigestUtils.md5Hex("FFTT"); final String tmc = HmacUtils.hmacSha1Hex(key, "20150611140022081"); Il nécessite l'import de la librairie apache commons codec 1.10. Toutes les informations pour la référencer sont disponibles depuis ce lien http://mvnrepository.com/artifact/commons-codec/commons-codec/1.10. Exemples ruby require 'digest' require 'openssl' tm = Time.now.strftime("%Y%m%d%H%M%S%L") secret = Digest::MD5.hexdigest("mpffT*****") tmc = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha1'), secret, tm) 2 3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13 Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com Exemples VB6 ou VBA ‘Code des fonctions MD5Hash et HMACSHA1 nécessaires pour le calcul du tmc à partir du tm et du passwd : Function MD5Hash(ByVal sTextToHash As String) Dim asc As Object, enc As Object Set asc = CreateObject("System.Text.UTF8Encoding") Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") TextToHash = asc.Getbytes_4(sTextToHash) hash = enc.ComputeHash_2((TextToHash)) MD5Hash = "" For i = 0 To UBound(hash) MD5Hash = MD5Hash & Right("0" & Hex(hash(i)), 2) Next MD5Hash = LCase(MD5Hash) End Function Function HMACSHA1(ByVal sTextToHash As String, ByVal sSharedSecretKey As String) Dim asc As Object, enc As Object Dim TextToHash() As Byte Dim SharedSecretKey() As Byte Set asc = CreateObject("System.Text.UTF8Encoding") Set enc = CreateObject("System.Security.Cryptography.HMACSHA1") TextToHash = asc.Getbytes_4(sTextToHash) SharedSecretKey = asc.Getbytes_4(sSharedSecretKey) enc.Key = SharedSecretKey Dim bytes() As Byte bytes = enc.ComputeHash_2((TextToHash)) HMACSHA1 = "" For i = 0 To 19 HMACSHA1 = HMACSHA1 & Right("0" & Hex(bytes(i)), 2) Next HMACSHA1 = LCase(HMACSHA1) End Function ‘ Nota, pas de prise en compte des millisecondes en VBA, la fonction Timer ayant une précision de l’ordre du centième de seconde est utilisée pour le calcul du tm tm = Strings.Format(Now, "yyyymmddhhnnss") & Right(Format(Timer, "#0.000"), 3) secret = MD5Hash("FFTT") tmc = HMACSHA1(tm, secret) 3 3, rue Dieudonné Costes – BP 40348 – 75625 PARIS Cedex 13 Tél. 01 53 94 50 00 – Télécopie 01 53 94 50 40 – [email protected] – www.fftt.com