Шифрование AES в VB. NET аналогично Java - PullRequest
0 голосов
/ 15 апреля 2020

В настоящее время я пытаюсь преобразовать существующий код в Java в VB. NET, который выполняет шифрование AES строки с ключом в строке MD5 ha sh.

Java код:

private static String a(byte[] paramArrayOfbyte) {
    StringBuffer stringBuffer = new StringBuffer();
    for (int i = 0; i < paramArrayOfbyte.length; i++) {
      String str2 = Integer.toHexString(paramArrayOfbyte[i] & 0xFF);
      String str1 = str2;
      if (str2.length() == 1) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append('0');
        stringBuilder.append(str2);
        str1 = stringBuilder.toString();
      } 
      stringBuffer.append(str1);
    } 
    return stringBuffer.toString();
}

public static String encrypt(String paramString) throws Exception {
    byte[] arrayOfByte1 = paramString.getBytes("UTF-8");
    SecretKeySpec secretKeySpec = new SecretKeySpec(MessageDigest.getInstance("MD5").digest("digiposoutletapp".getBytes("UTF-8")), "AES");
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    cipher.init(1, secretKeySpec);
    byte[] arrayOfByte2 = new byte[cipher.getOutputSize(arrayOfByte1.length)];
    cipher.doFinal(arrayOfByte2, cipher.update(arrayOfByte1, 0, arrayOfByte1.length, arrayOfByte2, 0));
    return a(arrayOfByte2);
}

Я использовал тот же тип AES с Java, который равен AES/ECB/PKCS5Padding, но результат шифрования VB всегда разные с Java.

Что здесь не так?

...