0

ユーザー名とパスワードを暗号化してエンコードし、SOAP ヘッダー経由で送信する必要があります。DES アルゴリズムを使用して、plainText を暗号化しました `

String key = "qwer1234qwetr123wqw";
        String x = "sadgsagd:%%^%ghsagdh";
        byte[] keyBytes = new byte[1024];
        byte[] plaintext = x.getBytes();
        byte[] tdesKeyData = key.getBytes();

    Cipher c3des = Cipher.getInstance("DESede/CBC/PKCS5Padding");
    SecretKeySpec myKey = new SecretKeySpec(tdesKeyData, "DESede");
    IvParameterSpec ivspec = new IvParameterSpec(keyBytes);

    c3des.init(Cipher.ENCRYPT_MODE, myKey, ivspec);
    byte[] cipherText = c3des.doFinal(plaintext);
    int hash = Base64.encode(cipherText).hashCode();

    return Base64.encode(cipherText);`

実行時に私は例外を取得しています:

javax.crypto.BadPaddingException: 与えられた

4

1 に答える 1

0

のバイト バッファを使用している場合は64、おそらく長すぎます に変更するか、このようにを32使用しますlengthfilebyte[] buffer = new byte[(int)new File("data").length()];

これを行った後、私の問題は解決します..

于 2013-04-24T04:55:40.533 に答える