2 Stimmen

Entschlüsseln einer Blowfish-verschlüsselten Zeichenkette in Ruby gibt nur 1/2 der Zeichenkette zurück

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X