В настоящее время я пытаюсь преобразовать существующий код в 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.
Что здесь не так?