2009-10-05 4 views
0

Donner une clé publique, je veux générer un résumé public. Voici le code dans JSP, mais j'ai besoin de cela dans Ruby. Je ne suis pas certain des équivalents de SecretKeySpec, doFinal, etc. J'utilise hmac, et hmac-sha1 sur Ruby.Génération publique Java vers Ruby (Base64/SHA1)

String pub = 'my_public_key'; 
BASE64Encoder encoder = new BASE64Encoder(); 
Mac sha1Mac = Mac.getInstance("HmacSHA1"); 
SecretKeySpec publicKeySpec = new SecretKeySpec(pub.getBytes(), "HmacSHA1"); 
sha1Mac.init(publicKeySpec); 
byte[] publicBytes = sha1Mac.doFinal(subscriptionID.getBytes()); 
String publicDigest = encoder.encodeBuffer(publicBytes); 
publicDigest = publicDigest.replaceAll("\n", ""); 
+1

Si vous avez une question concrète, veuillez modifier votre message pour le clarifier. Sinon, cela sera probablement fermé comme "pas une vraie question" (parce que ce n'est pas le cas). – ChssPly76

+0

Puis-je modifier la balise do-my-bidding-minion? –

+2

Oh, arrête ça. Les votes serrés et rapides à fermer sont vraiment inutiles. Indice: "Je ne suis pas certain des équivalents de SecretKeySpec, doFinal, etc." –

Répondre

1

Here is a page qui devrait vous aider à démarrer. Par ailleurs, j'ai un peu de sympathie pour le problème J. Riggs'. Alors que OpenSSL est livré dans le cadre de The Ruby Standard Library, il n'a pas de RDoc autre qu'une liste mécanique des noms de méthodes, et ri OpenSSL renvoie un grand total de trois (3, count 'em) lignes. . .

1
sha1 = HMAC::SHA1.new(@public_key) 
sha1 << data 
Base64.encode64(sha1.digest) 

Travail effectué. Les résumés correspondent entre les exemples ruby ​​et java.

Questions connexes