mcrypt Balon balığı php biraz farklı sonuçlar java ile karşılaştırıldı. net zaman

0 Cevap java

İşte değişmiş anahtar değerleri ve yükü ile bazı örnek kod:

$key = '/4rTInjwg/H/nA==';
$key = base64_decode($key);

$data = 'val=100|val=200|val=300|val=400|val=500|val=600|val=700|val=800|val=900|';
$data.= 'val2=100|val2=200|val2=300|val2=400|val2=500|val2=600|val2=700|val2=800|val2=900|';
$data.= 'val3=100|val3=200|val3=300|val3=400|val3=500|val3=600|val3=700|val3=800|val3=900|';
$data.= 'val4=100|val4=200|val4=300|val4=400|val4=500|val4=600|val4=700|val4=800|val4=900|';

$result = base64_encode(mcrypt_ecb(MCRYPT_BLOWFISH,$key, $data, MCRYPT_ENCRYPT));

Bu şifreler ve PHP ince çözer, ama Java ve. NET farklı değerler ile gelip, ve daha kötüsü, Java ya da. NET sonuçları şifresini çözemez. Ben java değerleri şifresini çalıştığınızda, ben hakkı başlar, ama yol boyunca çöp yarısını biter bir dize olsun. Ben durumda, Windows XP'de 5.3x çalışıyorum herkes merak etti.

Ben STFW süre sonuçlar ilk 50 ya da öylesine karakterler neticesinde, çok yakın olsun çünkü ben son yorumlar yüzünden yazarak sorunlarına sonucu karıştırmasını base64 ilgili şeyler söz, ve o oluyor buysa ben merak ediyorum birkaç konuları fark ettik , sonra işler @ # $ gidin!.

Ben de blok boyutu ve dolgu hakkında çeşitli konuları okudum, ama kimse dolgu ne olması gerektiği üzerinde hemfikir görünüyor olabilir. Gerçekten pad ne olacağını, varsayılan blok boyutu nedir, Java metin doldurma olup olmadığını bilmek gerekir? Aşağıya bakın:

Java geliştirici yapıyor:

    import org.apache.commons.codec.binary.Base64;
    import java.util.ResourceBundle;
    import com.sun.crypto.provider.SunJCE;

    ... snip ...

    StringBuffer ourTransferBuffer = new StringBuffer(s);
    byte abyte0[] = Base64.decodeBase64(encryptionKey);
    SunJCE sunjce = new SunJCE();
    Security.addProvider(sunjce);
    SecretKeySpec secretkeyspec = new SecretKeySpec(abyte0, "Blowfish");
    Cipher cipher = Cipher.getInstance("Blowfish");
    cipher.init(1, secretkeyspec);
    byte abyte1[] = cipher.doFinal(ourTransferBuffer.toString().getBytes());
    s = Base64.encodeBase64String(abyte1);
    return s;

    ... snip ...

Herkes burada herhangi bir fikirleri var, zaten bu konuda çok fazla zaman yandı ettik? Teşekkürler.

0 Cevap