Генерация открытого дайджеста с Java на Ruby (Base64 / SHA1) - PullRequest
0 голосов
/ 06 октября 2009

Дайте открытый ключ, я хочу создать публичный дайджест. Ниже приведен код в JSP, но мне нужно это в Ruby. Я не уверен в эквивалентах SecretKeySpec, doFinal и т. Д. Я использую hmac и hmac-sha1 в конце Ruby.

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", "");

Ответы [ 2 ]

1 голос
/ 06 октября 2009
sha1 = HMAC::SHA1.new( @public_key )
sha1 << data
Base64.encode64( sha1.digest )

работал. Дайджесты совпадают между примерами ruby ​​и java.

1 голос
/ 06 октября 2009

Вот страница , с которой следует начать.

Кстати, у меня есть некоторое сочувствие к J. Проблема Риггса . Хотя OpenSSL поставляется как часть стандартной библиотеки Ruby , он не имеет RDoc, кроме механического списка имен методов, и ri OpenSSL возвращает всего три (3, количество) строк. , .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...