Dies hängt mit meiner gestrigen Frage zusammen (die sehr gute Ergebnisse brachte): Die Verschlüsselung einer Zeichenkette mit Blowfish in Ruby ergibt eine kürzere Zeichenkette als der gleiche Vorgang in php
Jetzt habe ich ein ähnliches Problem in umgekehrter Richtung. Ich verwende php, um einen String zu verschlüsseln:
php > require_once 'Crypt/Blowfish.php';
php > $input = "input string";
php > $key = "some key";
php > $crypt = new Crypt_Blowfish($key);
php > echo bin2hex($crypt->encrypt($input));
79af8c8ee9220bdec2d1c9cfca7b13c6
Und genau das ist das erwartete Ergebnis. Wenn ich jedoch versuche, die Zeichenfolge in Ruby zu entschlüsseln, erhalte ich nur eine Teilmenge der Eingabe:
irb(main):001:0> require 'rubygems'
r=> true
irb(main):002:0> require 'crypt/blowfish'
=> true
irb(main):003:0> key = "some key"
=> "some key"
irb(main):004:0> input = "79af8c8ee9220bdec2d1c9cfca7b13c6"
=> "79af8c8ee9220bdec2d1c9cfca7b13c6"
irb(main):005:0> block = input.gsub(/../) { |match| match.hex.chr }
=> "y\257\214\216\351\"\v\336\302\321\311\317\312{\023\306"
irb(main):006:0> blowfish = Crypt::Blowfish.new(key)
=> #<Crypt::Blowfish:0xb73acbd8 @sBoxes=[[3156471959, 1769696695, 1443271708, 181204541,
... 1894848609], @key="some key">
irb(main):008:0> blowfish.decrypt_block(block)
=> "input st"
Haben Sie eine Ahnung, was für eine Dummheit ich jetzt begehe?