J'essaie de faire un chiffrement triple DES dans Ruby. J'essaye de reproduire les résultats de cette page: http://da.nmilne.com/des.htmlComment effectuer des calculs Triple DES en Ruby en hexadécimal?
J'essaye de reproduire le résultat dans Ruby. Je soupçonne que le problème est que la clé est censée être une chaîne, mais je dois passer une clé hexadécimale. Soit cela ou la chaîne en cours de cryptage est dans le mauvais format. Ou peut-être les deux. :-)
require 'openssl'
des = OpenSSL::Cipher::Cipher.new("des-ede-cbc")
des.encrypt
des.key="23232323232323234545454545454545"
des.update("0000000000000000")
res=des.final
res.unpack('H*')
=> ["5045c5d37ca4d13b"]
Mais il devrait être:
=> ["3a42d7a1d1c60c40"]
Tous les pointeurs sur où je vais mal?
- Différents algorithmes 3DES sont documentés ici: http://www.openssl.org/docs/apps/enc.html
- Modifié par souci de clarté
Cette page a eu d'autres informations utiles: http://snippets.dzone.com/posts/show/576 – dkam
vous attendez-vous "2323 ..." être en fait 0x2323 .. soit un nombre hexadécimal, ou quelque chose de similaire? – conny
Oui - mais la touche = attend une chaîne - pas un nombre. J'ai aussi essayé: des.key = "23232323232323234545454545454545" .unpack ('a2' * 32) .map {| x | x.hex} .pack ('c' * 32) (Ce qui était du lien dans le premier commentaire) mais ça ne marche pas non plus. – dkam